2009-11-23 29 views
2

在项目获得批准后,是否有办法禁用编辑?如何在SharePoint(WSS)中批准后禁用项目编辑?

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

有没有人有更直接的解决方案来解决这个问题?

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

回答

1

这些步骤我想借此:

  1. 创建ItemUpdated事件hanlder。
  2. 在事件处理程序中检查状态列。
  3. 如果状态被批准,中断该项目的权限继承,删除贡献权限并添加读取权限。

P.S.您还可以通过使用SharePoint Designer工作流和自定义活动没有代码做这件事http://spdactivities.codeplex.com

1

您可以添加一个ItemUpdating处理程序,只是抵消未来更新操作,以给用户一个合理的错误消息。不过,这样做有点愚蠢,因为你仍然给他们一个机会试图编辑该项目,然后砰地关上门。

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

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

相关问题