如何检查指定的群组是否具有某个项目的特定权限? 我知道在项目上有类似DoesUserHavePermissions()的方法,但是组呢?
答案 0 :(得分:2)
未经测试的代码,但是类似的东西。
这适用于群组和用户,也适用于具有权限的所有内容(项目,列表,网页等)
public static bool DoesPrincipalHavePermission(ISecurableObject @object, SPPrincipal principal, SPRoleDefinition role)
{
var assignment = @object.RoleAssignments.GetAssignmentByPrincipal(principal);
if (assignment == null || assignment.RoleDefinitionBindings.Count < 1)
return false;
foreach (SPRoleDefinition r in assignment.RoleDefinitionBindings)
{
if (r.BasePermissions == role.BasePermissions)
return true;
}
return false;
}