我正在SharePoint上设计一个系统。这些项目有一个审批列表。成员可以批准、拒绝和编辑项目。审批列表中的一个必须在批准时填写项目中的“分配给”字段。添加到“分配给”字段的用户应该能够在项目被批准后编辑它的内容。那么,在用户被分配到特定项的字段后,我如何给予他们编辑权限呢?
情况是:
审批列表: A、B、C(编辑、查看权限)
使用者: x,y,z.(未经许可,批准后查看)
商品: item1,item2,item3.
物品是看不见的。A批准item1,并将X添加到“分配给”字段。这意味着这个项目是X的责任。但是X没有编辑权限。我们不能对每一项给予编辑权限。当他被写入“分配给”字段后,他应该编辑这些项目。
如何在SharePoint中创建此工作流?请紧急帮助。
发布于 2010-04-01 16:37:06
不能百分之百肯定你想要达到的目标,但是.
根据我对您的问题的理解,您要做的是根据分配给列表项字段中的值为列表项分配唯一权限。
我这样做的方法是为您的项目列表创建一个事件处理程序,当列表项被更新/批准时运行。它将:-
发布于 2010-04-01 18:16:04
正如Paul所提到的,您可以使用ItemAdded和ItemUpdated事件接收器和类似以下的方法来完成这一任务,并添加异常处理。
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
SPListItem item = properties.ListItem;
SetRights(item, ((SPFieldUserValue)item["AssignedTo"]).User, SPRoleType.Reader);
}
private void SetRights(SPListItem item, SPPrincipal principal, SPRoleType role)
{
SPRoleDefinition RoleDefinition = item.ParentList.ParentWeb.RoleDefinitions.GetByType(role);
SPRoleAssignment RoleAssignment = new SPRoleAssignment(principal);
RoleAssignment.RoleDefinitionBindings.Add(RoleDefinition);
if (!item.HasUniqueRoleAssignments)
{
item.BreakRoleInheritance(true);
}
item.RoleAssignments.Add(RoleAssignment);
item.SystemUpdate(false);
}https://stackoverflow.com/questions/2561583
复制相似问题