我想以编程方式实现它,以便用户只能看到列表中的特定项目。
基本上,在创建项目时运行的工作流程中,我将执行一些操作并通知一些人有关此项目的信息。我还希望它更改项目的权限,以便只有特定用户(根据项目内容在运行时查找)才能读取该项目。有权访问该列表的其余用户将只能看到特定项目,而不是全部项目。列表项可能不一定是拥有的,但需要查看它的用户,因此我无法将列表权限设置为让用户只能看到自己的项目。
如果有帮助的话,请将其放在上下文中 - 该列表正在将工作角色注册到特定成员。每个列表项都是一个角色分配,其中包含对角色列表中角色的查找和对成员列表中成员的查找。我没有直接在角色的成员列表中使用多重查找字段,因为每个角色分配都需要保留有关它的额外信息,例如描述、开始日期等。
每个角色都有一个特定的用户/组来管理它。我希望这样当用户查看这个大的角色分配列表时,只能看到他们所管理的角色的角色分配。
非常感谢您的建议。
您可以为各个列表项分配权限。对于前。
// 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);
但请注意为每个列表项分配权限对性能和操作的影响。
一般来说,我更喜欢
- 分配的权限不低于列表级别
- 尽可能为组分配权限,然后将单个用户包含到这些组中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)