如何在SharePoint(WSS)中批准后禁用项目的编辑?

时间:2009-11-23 15:15:20

标签: sharepoint wss

有没有办法在项目获批后禁用编辑?

我想到的一个选项是编写一个事件处理程序,当用户尝试编辑项目并允许基于批准状态的操作时将触发该事件处理程序。

有没有人能够更直接地解决这个问题?

P.S。该项目的所有者应保持不变。

2 个答案:

答案 0 :(得分:1)

这些是我要采取的步骤:

  1. 创建一个ItemUpdated事件hanlder。
  2. 在事件处理程序中检查状态列。
  3. 如果状态已获批准,请中断对项目的权限继承,删除提交权限并添加读取权限。
  4. P.S。您也可以在http://spdactivities.codeplex.com

    使用Sharepoint Designer工作流和自定义活动,无需代码

答案 1 :(得分:1)

您可以添加ItemUpdating处理程序,只需取消未来的更新操作,并为用户提供合理的错误消息。然而,这使得它有点傻,因为你仍然给他们一个机会尝试编辑项目,然后砰地一声关上门。

OTTOMH,您可能希望在schema.xml文件中为列表定义声明custom edit form。对于编辑表单,您可以指向自定义应用程序页面,该页面将评估项目的可编辑性。如果该项目是可编辑的,则会重定向到常规编辑表单。如果它不可编辑,则会显示合理的错误消息。

Unclepaul84的想法很好,特别是如果你想确保用户甚至没有看到项目的“编辑”菜单。您将负责浏览任何现有列表数据并应用这些安全设置,如果规则发生更改,则必须返回并重新应用正确的设置。这对你来说可能不是一个大问题,但是如果你的规则有一天可能发生变化,或者你的规则本质上更具动态性,我认为拦截编辑表可能会给你带来更好的里程。