动态改变用户权限

发布于 2024-08-27 13:19:06 字数 450 浏览 8 评论 0原文

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

情况是:

批准列表:A、B、C(编辑、查看 许可)

用户:x,y,z ....(无权限,查看 批准后)

项目:项目1、项目2、项目3....

项目是不可见的。 A 批准了 item1 并将 X 添加到“分配给”字段。这意味着该项目由 X 负责。但X还没有获得编辑权限。我们无法向 X 授予每个项目的编辑权限。他应该在将其写入“分配给”字段后编辑项目。

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

I am designing a system on SharePoint. There is a approval list for the items. The members can approve, reject and edit the items. One from approval list has to fill the "assigned to" field in the item while approving it. The user who is added to "assigned to" field should able to edit the content of the item after it is approved. So, how can I give the edit permission to the users after they are added assigned to field of a specific item?

The situation is:

approval list: A, B ,C (edit, view
permission)

users: x,y,z .... (no permission, view
after approval)

items: item1, item2, item3....

items are invisible. A approved the item1 and added X to "assigned to" field. It means This item is under X's responsibility. But X hasn't got edit permission. we can't give edit permission to X for every item. He should edit the items after he is written into the "assigned to" field.

How can I create this workflow in SharePoint? Please urgent help needed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

つ可否回来 2024-09-03 13:19:06

不能 100% 确定完全清楚您想要实现的目标,但是...

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

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

  1. 读取分配给字段中的值
  2. 中断列表项上的权限继承
  3. 分配用户在分配给该项目的字段编辑权限中。

Not 100% sure it is fully clear what you are trying to achieve, but...

From my understanding of your question, what you want to do is assign unique permissions to a list item based on a value in the assigned to field of that list item.

The way I would do this is to create an event handler for your items list that runs when the list item is updated/approved etc. It would:-

  1. Read the value in the assigned to field
  2. Break permission inheritance on the list item
  3. Assign the user in the assigned to field edit permissions to that item.
天赋异禀 2024-09-03 13:19:06

正如 Paul Lucas 提到的,您可以使用 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);
}

as Paul Lucas mentioned, you could do it using an ItemAdded and ItemUpdated event receiver and methods like these, with added exception handling

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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文