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

SharePoint 2007 is great! It security trims all my menu navigation; if the user does not have permission to a site then they won’t see it in the navigation.

However, the business owners don’t see it like this; they would like the user to see all the sites that are potentially available and where the user does not have permissions to a site it should be disabled (or greyed out if you will), much like SharePoint 2003 did.

Has anyone had this requirement? Display all available sites and disable those sites the user does not have access to.

share|improve this question
add comment

2 Answers 2

You could easily create your own sitemapprovider to handle this. I talk a little bit about it here: http://www.thelineberrys.com/default-category/using-features-to-enable-drop-down-menus-in-team-sites-3.html

When I wrote mine final sitemapprovider versions, I impersonated the service account and created a list of all the navigation nodes and their parents and that is stored with the sitemapprovider. Then on each request I check to make sure my cached version is still valid and if so, I then find all of the navigation nodes. I then security trim the nodes. It's at this point you would want to still return the node but set a property on it so it outputs grey or something.

You would also need to implement your own menu control. I've been pretty successful in doing this with the code provided here: http://blogs.msdn.com/b/ecm/archive/2006/12/02/customizing-the-wss-3-0-moss-2007-menu-control-mossmenu-source-code-released.aspx

In this code you would check for the property you set in the sitemapprovider and change the color or output based on that property.

share|improve this answer
add comment

I've done some work with web services to generate top link and quick launch via script. You could follow that approach and hit the permissions web service to see if the user has access and apply the appropriate style based on the return.

I can't say that's the best approach, works better on a smaller scale as there's potentially a lot of web service traffic, but it should do what you want.

share|improve this answer
    
wouldn't the the web service used to generate the top link be securtiy trimmed as well? –  Rob Jul 7 '10 at 8:48
    
My purpose for this is when you have multiple site collections and want to replicate a common top link or quick launch across all of them. For this scenario, I build a links list that has all of the links/elements I want to display. In that scenario it is not security trimmed, it's just a list of links. –  webdes03 Jul 8 '10 at 13:32
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.