Here is the best way to evaluate if a user can view a list. I had many problems with a web part and after investigations, this method resolve the problems.
Read the comments in the code to learn more about it!
Code:
| public bool UserCanViewListItems(SPWeb web, SPList list) | |
| { | |
| bool res = true; | |
| SPWeb myweb = null; | |
| SPSite mysite = null; | |
| try | |
| { | |
| /* There is a kind of ownership problem related to the DoesUserHavePermissions. | |
| * To fix that problem, the user performing the execution of the method, needs to | |
| * be the same as the one who created the Parent Object. For this reason, This | |
| * Method use the List object received in param and recreate the Parent object to | |
| * get the ownership. And it works perfectly.*/ | |
| mysite = new SPSite(list.ParentWeb.Url); | |
| myweb = mysite.OpenWeb(); | |
| list = myweb.Lists[list.Title]; | |
| list.Permissions.DoesUserHavePermissions(SPRights.ViewListItems); | |
| } | |
| catch(Exception) | |
| { | |
| res = false; | |
| } | |
| finally | |
| { | |
| if(myweb!=null) | |
| myweb.Dispose(); | |
| if(mysite!=null) | |
| mysite.Dispose(); | |
| } | |
| return res; | |
| } | 
0 comments:
Post a Comment