Part-3 : How to show/hide SharePoint Quick Launch for users with specific permission

In this post, I will discuss about how to hide/show Quick Launch/left navigation and related area for specific permission group.

This post is part 3 from the Quick Launch series,

part-1 : customizing quick launch to pick up 3 or more level of sub-menu items

Part-2 : How to add 3 or more level of menu items in SharePoint quick launch

Part-3 : How to show/hide SharePoint Quick Launch for users with specific permission

Let’s start with what we get with out of box functionality

For publishing site / OR team site with publishing features enabled you can choose audience targeting for links added to Quick launch ..!!

  • Go to site settings -> Look and Feel -> Navigation
  • Choose a link item and select Edit.. or Add Link ; In both you will find an option for targeting audience.
  • Let say you have chosen GroupA and GroupB in audience and save it.
  • Now users from only GroupA and GroupB can able to see this link and no one else…Isn’t this great out of box functionality:)

20120625-161203.jpg

20120625-161151.jpg

But this is not enough for real projects !!  And so we will go ahead with code for little more… You can do this with sharepoint designer / visual studio project / or even from browser itself by dumping webpart on the page [keep in mind browser way will not make changes to master page]

If you want to show/hide or make any branding changes which are consistent throughout your site you must make the change in master pages.

1)  Hiding Quick Launch for all users

.s4-ql{ display:none !important; }

Quick launch is gone…!!

2) Getting rid of whole left navigation

#s4-leftpanel{ display:none !important; }

Left panel is gone !!

Well but you still find blank big junk white space on left side …

Do you want to get rid of it then add following as well.

.s4-ca{ margin-left:0px !important; }

3) Let’s say now you want to hide it for only specific users with some specific permission..

In sharepoint 2010 you can run/render  script/control  for specific permission access…

<Sharepoint:SPSecurityTrimmedControl runat=”server” Permissions=”ManageLists”>

put your stuff here that you want security trimmed

This section will only run for users with  Permissions -> ex. ManageLists here..

In our case (1)  or (2) will come here in style tag..

</SharePoint:SPSecurityTrimmedControl>

4) More on SPSecurityTrimmedControl :  What to choose as permissions attribute ?

  • In simple language, Permissions are roles in SharePoint
  • If user is a member of that role then whatever inside SPSecurityTrimmedControl will run/render.
  • You can also make your check like if user is in role A or B or C then run my script or render my control.
  • To check multiple roles condition SPSecurityTrimmedControl  takes PermissionsString property instead of Permissions with a comma separated list of roles.

Below is the MSDN link which will give you brief idea about what are the available permission roles in SharePoint 2010.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

5) Little bit about quick launch related css classes if you need to go ahead with other stuff for left navigation.

css class/id

Represent what section on SharePoint 2010

s4-notdlg Whole navigation top/left everything
#s4-leftpanel [id] Whole left navigation
S4-ql Quick Launch
s4-specialNavLinkList Special Navigation links on left side bar ex.Recycle bin, All site contents..
s4-specialNavIcon Special navigation icons..
ms-quickLaunch Covers quick launch, special nav links, tree view

8 thoughts on “Part-3 : How to show/hide SharePoint Quick Launch for users with specific permission

  1. Hi!

    This is really a great post.
    I was wondering if the approach to nr 3 works on the quick launch in SharePoint’s MySite?
    I tried setting up audience for a new link in quick launch but still all users that log in to the site can see the link (even though I made it restricted to only Group 1 where I just had one user).

    Since that approach didn’t work I am now looking in to your post.

    Cheers
    Johanna

  2. Hi,
    Thanks for the post. Will it work for a Mysite with publishing feature activated.
    Thanks,
    Lakshmi

Comments are closed.