SharePoint C# Get list of sites and subsites on which user has permission (like Read, Contribute Visitor) -
using (spsite osite = new spsite(spcontext.current.site.url)) { foreach (spweb oweb in osite.rootweb.getsubwebsforcurrentuser()) { permission = string.empty; foreach (spgroup group in oweb.groups) { foreach (spuser u in group.users) { if (u.name == (username)) { foreach (sprole role in u.roles) { permission += role.name.tostring() + ", "; } } } // taking permission details of user } permission = " [" + permission.trimend(", ".tochararray()) + "]";
} }
my final string variable have values [read, visitor] or [read] or [visitor, read]
i wants have permission names , getting error/warning on u.roles [roles absolute now],
help me permission using sproledefination etc sproledefinitioncollectionroledefinitions = oweb.roledefinitions; sproledefinitionroledefinition
thanks praveen
try out
foreach (spweb oweb in osite.rootweb.getsubwebsforcurrentuser()) { sproledefinitioncollection ocollection= oweb.roledefinitions; foreach (sproledefinition r in ocollection) { sproledefinition roledef = ocollection[r.name.tostring()]; foreach (sproleassignment oassigment in oweb.roleassignments) { if (oassigment.roledefinitionbindings.contains(roledef)) { permissions+= r.name.tostring(); } } }
Comments
Post a Comment