SPGroupCollection groups = web.Groups;
//设置组的权限
SPRoleDefinition reader = web.RoleDefinitions["读取"];
SPRoleDefinition Rolecy = web.RoleDefinitions["参与讨论"];
string gName = listitem["事故发生单位"].ToString();
string GroupN = gName + "_bx";
listitem.BreakRoleInheritance(true);
foreach (SPGroup groupItem in groups)
{
//循环删除原来的所有组的权限
Tools.RemoveItemRole(groupItem.Name, listitem);
//给对应的组加权限
switch (groupItem.Name)
{
case "保险事故通报平台所有者":
Tools.setGroupRole(groupItem, listitem, Rolecy);
break;
case "保险事故通报平台成员":
Tools.setGroupRole(groupItem, listitem, reader);
break;
case "保险事故通报平台访问者":
Tools.setGroupRole(groupItem, listitem, reader);
break;
}
//设置选择的工厂名称组的权限
if (groupItem.Name == GroupN)
{
Tools.setGroupRole(groupItem, listitem, Rolecy);
}
}
s/// <summary>
/// 删除item权限
/// </summary>
/// <param name="allUnits"></param>
/// <param name="item"></param>
public static void RemoveItemRole(string allUnits, SPListItem item)
{
SPRoleAssignmentCollection roles = item.RoleAssignments;
for (int i = roles.Count - 1; i >= 0; i--)
{
if (allUnits == roles[i].Member.Name)
{
item.RoleAssignments.Remove(roles[i].Member);
}
}
}
/// <summary>
/// 添加item权限
/// </summary>
/// <param name="allUnits"></param>
/// <param name="item"></param>
public static void setGroupRole(SPGroup spGroup, SPListItem item, SPRoleDefinition roleDefinition)
{
SPRoleAssignment groupRoleAssignment = new SPRoleAssignment(spGroup);
groupRoleAssignment.RoleDefinitionBindings.Add(roleDefinition);
item.RoleAssignments.Add(groupRoleAssignment);
}
94




被折叠的 条评论
为什么被折叠?



