首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态更改用户权限

动态更改用户权限
EN

Stack Overflow用户
提问于 2010-04-01 15:34:03
回答 2查看 1.4K关注 0票数 0

我正在SharePoint上设计一个系统。这些项目有一个审批列表。成员可以批准、拒绝和编辑项目。审批列表中的一个必须在批准时填写项目中的“分配给”字段。添加到“分配给”字段的用户应该能够在项目被批准后编辑它的内容。那么,在用户被分配到特定项的字段后,我如何给予他们编辑权限呢?

情况是:

审批列表: A、B、C(编辑、查看权限)

使用者: x,y,z.(未经许可,批准后查看)

商品: item1,item2,item3.

物品是看不见的。A批准item1,并将X添加到“分配给”字段。这意味着这个项目是X的责任。但是X没有编辑权限。我们不能对每一项给予编辑权限。当他被写入“分配给”字段后,他应该编辑这些项目。

如何在SharePoint中创建此工作流?请紧急帮助。

EN

回答 2

Stack Overflow用户

发布于 2010-04-01 16:37:06

不能百分之百肯定你想要达到的目标,但是.

根据我对您的问题的理解,您要做的是根据分配给列表项字段中的值为列表项分配唯一权限。

我这样做的方法是为您的项目列表创建一个事件处理程序,当列表项被更新/批准时运行。它将:-

  1. 读取分配给字段的
  2. 中断权限继承中的值
  3. 分配给分配给该项的字段编辑权限的用户。
票数 1
EN

Stack Overflow用户

发布于 2010-04-01 18:16:04

正如Paul所提到的,您可以使用ItemAdded和ItemUpdated事件接收器和类似以下的方法来完成这一任务,并添加异常处理。

代码语言:javascript
运行
复制
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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2561583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档