Wednesday, January 25, 2012

Ribbon for READ Permission in SharePoint 2010 Publishing Page

While i was working in my previous project, this was one of the issues that i had faced for which i had spent a lot of time googling. I'm posting this information so that anyone else who gets into the same situation does not waste much time.

This is about the behavior of ribbon in SharePoint 2010 based on the permissions. 

The requirement what i had was to have the ribbon available for all the users. The ribbon was supposed to be  activated based on the context (For Ex: when clicked on any of the list items within a list view web part, the contextual ribbon must get displayed.) even for READ users.
However, the ribbon in publishing pages gets activated only for users with a minimum of “AddAndCustomizePages”. Which means that, the ribbon permission level needed to be downgraded from AddAndCustomizePages -> ViewListItems/ViewPages OR any READ level permission in order to be made available to all users. Though many sites mention ribbon as a default behavior for any user and customization is required to HIDE it from anonymous users. Whereas we see the opposite behavior in our case. This inbuilt behavior is because SharePoint reduces the page overhead for users with less privilege.

I also ran through couple of solutions offered from other sites as mentioned below but unfortunately none of them worked out.
@  Change the PermissionsLevel attribute to “ViewListItems” instead of “AddAndCustomizePages” for the <SharePoint:SPRibbon> in the master page.
@  Embed the div area displaying the ribbon (s4-ribbonrow) within <SharePoint:SPSecurityTrimmedControl>, set the appropriate permission level for this tag and for other set to display:none.

Below are the links which were referred:

Hence, the conclusion is - The ribbon in publishing pages gets activated only for users with a minimum of “AddAndCustomizePages”. This inbuilt behavior is because SharePoint reduces the page overhead for users with less privilege. Its better to think a different design approach if you are hanging on the same scenario.

Alternately, if someone has different thought on the same topic may respond to this post.