Today, I had a requirement to set permissions on list view, I remembered this feature was present in SharePoint 2007, but I couldn’t find it in SharePoint 2010. After doing a bit of research, I found out a way to do this out of the box.
I’ll be using the default Task list for illustrative purposes. However, this method can be used on any list or document library.
Let’s say for example, we want to create a view in task list to show users the tasks which are assigned to them and their manager should be able to view all tasks. So users should only be able to access my tasks view and only their managers can access all tasks view.
Create a document library. I’m naming it Restricted views. It is better to not show this library in quick launch because it’ll be used to host the all tasks view.
Now open SharePoint Designer 2010, go to All Files – Lists – Tasks and copy AllItems.aspx (This is All Items view.)
Go to All Files – Restricted Views (It is the document library which we created in step 1) and paste the AllItems.aspx there.
Go to All Files – Lists – Tasks and delete AllItems.aspx.
Open the SharePoint 2010 portal – Site Actions – View All Site Content – Restricted Views, you will see AllItems.aspx there.
Select AllItems.aspx – Document Permissions – Stop Inheriting Permissions and then grant permissions to manager.
Go back to SharePoint Designer 2010, go to All Files – Lists – Tasks and then delete AllItems.aspx.
Go to All Files – Restricted Views, copy AllItems.aspx and paste it to All Files – Lists – Tasks.
Open the SharePoint 2010 portal, go to Task List, when you click the views drop down, you’ll see two views titled All Items, don’t worry.
Go to list settings – views and click All Tasks views, now you’ve to be careful here and delete the old view.
Make sure URL of the view says /Lists/Tasks/AllItems.aspx and not /Restricted Views/AllItems.aspx. This is important because the view in Restricted Views library is the one with proper permissions.
Now try accessing the view as manager, you’ll be to see it and when you’ll try to access the view using any user who you didn’t give, they’ll see access is denied when they’ll try to access it.
I hope this will help you out. Thanks for reading.