0

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?

2

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).

  • I'm facing a similar issue, which is a public facing SharePoint Publishing site that has many sub-sites that have broken inheritence with the root parent site. Your idea for creating another page library seems a like a good one, but a Publishing site can only have one Site Pages library at my understanding. If there is no way to add a second Site Pages library, I cannot see this being a valid solution. Would you disagree? @Zork – JakeJacobsen Nov 29 '17 at 13:56
2

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.

  • 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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