Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

While Working with SharePoint one of the things I've found to always want is prevent editing of Pages but at the same time allowing Contribute access as the default for all lists/libraries in a site.

My original (and quite silly) solution was to set the site permissions to read, and manually break inheritance on all of the lists/libraries and give them contribute permissions there.

How would I go about preventing page edits without doing something like using javascript/custom solutions/Master Page Edits?

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

The simple solution to this is instead of breaking inheritance on the lists and libraries you want the users to have contribute access to, just break inheritance on the Page Library (normally Site Pages) and set everyone (other than administrators) to read access and voila no more ability to edit pages.

If you wanted to have user editable pages in addition to this, all you would need to do would be create another page library for them to user and create links appropriately.

This allows you to have the minimum number of unique permission sets per site, and can be very valuable if you need to create subsites with the same no page edit requirement but do not want to put users through an overcomplicated process to accomplish it (or do it yourself).

share|improve this answer
add comment

Zork's answer is the route I would go, but in a scenario if this isn't an option you could set up event receivers on the page library that throw an error whenever someone tries to update the files.

This is problematic for a couple reasons though:

  1. It's not user friendly. Users will have had to go through the edit process only to find out that their changes didn't take and they "lose their work."

  2. Its a custom solution for something that is otherwise simple. There is a fair amount of effort that has to go into this, especially if its something you haven't done before.

So, I'll say again, Zork's answer is the best route but if you absolutely can't break inheritance there are other options at least.

share|improve this answer
    
Thank you for expanding on the other possibilities, and great job being clear on the limitations of that solution as well! –  Zork Jun 7 '12 at 14:14
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.