我想以编程方式让这个用户只能看到particuar清单上的项目。
基本上都在运行,当一个项目被创建,我会做一些东西,并通知一些人关于这个项目的工作流程。 我也希望它改变关于该项目的权限,以便只有特定用户(抬头基于项目内容运行时)可以阅读的项目。 即有机会获得该列表将只能看到特别的物品,但不是所有的用户的其余部分。 列表项不一定拥有,但是需要看到它,所以我不能设置列表权限,让用户只看到自己的物品的用户(一个或多个)。
为了把这个变成背景下,如果它helps-名单登记工作角色的特定成员。 每一个列表项是包含查找到的角色列表中的角色和查找到成员列表成员的角色分配。 我没有直接使用在成员列表中的multilookup场的角色,因为每个角色分配需要保持它如说明,开始日期ECT额外信息。 每个角色都有一个特定的用户/组对其进行管理。 我想它,以便将角色分配这个大名单时,用户只能看到角色分配的,他们的管理者的角色。
建议将不胜感激。
您可以将权限分配给各个列表项。 对于前。
// get list item
SPListItem item = <your list item>;
if (!item.HasUniqueRoleAssignments)
{
item.BreakRoleInheritance(true);
}
// get principal
SPPrincipal principal = <principal to grant permissions to>;
// get role definition
SPRoleDefinition rd = <role that contains the permissions to be granted to the principal>;
// create role assignment
SPRoleAssignment ra = new SPRoleAssignment(principal);
ra.RoleDefinitionBindings.Add(rd);
item.RoleAssignments.Add(ra);
但要注意有关性能和分配每列表项权限的业务影响。
在一般情况下,我宁愿
- 权限分配比列表级别不得更深
- 尽可能地,将权限分配给组,然后包括个人用户到这些组中。