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

I have to use web services to get current users permissions for document libraries in sharepoint. I tried using Permissions.asmx:"GetPermissionCollection" but it only works when the user has Full control.If the user has any other permission(eg:read/contribute) i get 401 error.

I have to create an app where i display all the Document libraries which have Write permission for the current logged in user.

For getting user permissions for a Site, I am using UserGroup.asmx:"GetRolesAndPermissionsForCurrentUser", It is working fine... But it does not work for libraries... :(

Can you please help me with a solution to this issue...I have googled the issue but haven't been able to find an optimum solution.

Thanks and Regards,

Aakanksha

share|improve this question

2 Answers 2

To do this, you'll want to take a slightly different approach. In order to enumerate permissions, users need a high level of access, as you've seen. Instead of using permissions.asmx, use the GetListCollection operation from Lists.asmx. This will return a security trimmed list of lists and libraries the user can access.

Then with those results, you can evaluate the values in the ReadSecurity and WriteSecurity nodes to see what they can do. Here is a reference on what those fields mean. You'll also want to look specifically at items with a server template of 101 (document library).

share|improve this answer
1  
Although this is an old post, I wanted to just say Thank you Eric... your answer helped me today. I wanted to also add that I did not find WriteSecurity on the response from GetListCollection (O365), but it is returned when you do a GetList. The GetListCollection does include the ReadSecurity, which works as you indicate: returns only lists the user can "see". In my case, I had to pull the the GetList result to see if the user had WriteSecurity. Thanks again. –  Paul T. Dec 31 '13 at 14:01

The information you are looking for is available via the "Check Permissions" button in the document library ribbon.

Also, there are third-party tools that do this, plus more.

share|improve this answer
1  
I'm missing the connection between programmatic request of the poster and the user driven response of your answer. If you are implying that we can reverse engineer the solution from the check permissions button, it might be good to explain that. The other option seems to be that you can't do that in a web service, but it's not clear to me from this answer. –  Tom Resing Jun 23 '11 at 2:08
    
I need more rep in order to downvote this answer. –  trgraglia Aug 10 '11 at 12:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.