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

SharePoint 2010 : How to add menu items at 3 or more level in quick launch -part 2

This post is part 2 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

In this post, I will discuss about how to add menu items to quick launch programmatically.

There isn’t any out of box settings that will allow you to add items to quick launch at 3rd or more levels. And so going with code solution again.

Here I am adding all views for task list at 3rd level Menu items under Tasks.

20120318-093128.jpg

You can also get quick launch from web.Navigation.GlobalNodes and customize as per what you want.

MSDN links for Quick Launch:

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

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

Hope that helps..!!

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

In this post, I will discuss about how to customize quick launch to pick up submenu items.

SharePoint populates the quick launch from site’s master page.

This post is part 1 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

You must have noticed that by default quick launch menu items appears only with two levels.

We need to make our custom master page so lets begin.

  • Open site’s default master page in SharePoint Designer.
  • Copy all contents and close / uncheck out it. [Never make changes in this file]
  • Create your custom master page and paste all contents. [I believe that you have basic idea about how to create and deploy custom master page]
  • Find control id=”V4QuickLaunchMenu”
  • Change StaticDisplayLevels=”3″ MaximumDynamicDisplayLevels=”3″
  • Save and deploy it to your site.
  • Go to SharePoint Designer -> Open your site -> MasterPages -> choose your custom master page
  • Right click and select ‘Set as Default Master Page’.
  • Do IISRESET if required and check your site in browser to view changes
  • Change StaticDisplayLevels and MaximumDynamicDisplayLevels property as per the level of menu items you want to display in Quick Launch.

20120314-105132.jpg

20120314-105157.jpg

Hope that helps..!!