19 February 2010

Locking down Actions in SharePoint 2007 like Edit in Datasheet, Export to Spreadsheet

Among the many requests we get to compose or decompose some of the basic functionality built into SharePoint 2007 - we get this one a lot.  For some very valid business reasons, Edit in Datasheet or Export to Spreadsheet (Excel / Access) violate some of the metadata rules or workflow customizations that may affect metadata.  I think this is due to the lack of robust field level security tied out to the users or groups in SharePoint.  It's not too hard to build this into SharePoint (most serious web applications have field level security), and I've even helped build field level security into a few widely employed web applications. So maybe its due to something else.  Either way, to disable the functionality, you basically gut SharePoint's webservices from the set of users you want to lock it down for.

  1. Go to [your site] > Site Settings > Permissions > Permission Levels

      1. Note: to do this for a single list, break permission inheritance at the list, then apply the new Permission Level to the Groups or Users that you want to restrict

  2. Add a permission level or click on an existing permission level (to copy to a new permission level as a template)
  3. Remove the following permissions from the list

  • Use Remote Interfaces - Use SOAP, Web DAV, or SharePoint Designer interfaces to access the Web site.  (To stop the people from linking to the list with Access, etc.)
  • Use Client Integration Features - Use features which launch client applications. Without this permission, users will have to work on documents locally and upload their changes.  (To remove Edit in Datasheet. This also removes Export to Spreadsheet)

There are other ways involving the javascript jquery library that I'm not as fond of here. Doug Ware from Elumenotion wrote up a few choices, and is on point with his write up.

No comments:

Post a Comment

firstly, thanks in advance for your comment - I don't get very many, so I'm sure to follow up if you leave me a way - secondly, come again.