2010-07-13 83 views
0

我最近开始为SharePoint开发。我刚刚为任务列表编写了一个事件接收器,以便将该项目的编辑权限授予在分配给字段中输入的用户。Sharepoint 2007:授予任务列表中“已分配给”用户的编辑权限

不幸的是我的代码不起作用,我想我也找到了原因。

列表授予默认权限作出贡献的所有用户,让每一个身体可以添加任务。 在高级下,设置了项目级权限,以便所有用户都可以读取所有项目,但他们只能编辑自己的项目。

当我创建一个项目并现在检查它的权限时,每个用户已经列出了贡献权限。他们也可以转到编辑表单,但在提交更新的项目时会显示权限错误。

这就是我坚持的观点。如果用户已被列为贡献者,但仍然无法更改该项目,我可以做些什么来允许它?

我知道如何添加权利和制动角色继承程序,但作为贡献者不准更新国外项目,它是无用的。

我目前的想法是:在高级下,设置对“所有项目”和事件接收器的编辑访问权限,在ItemAdded事件中,打破角色继承,向创建者和“分配给”用户添加贡献权限,休息与读取权限。

但是,随着角色继承被打破,新用户会发生什么?我想,无法看到在他们加入任务列表之前创建的任务。此外,我不确定它会导致哪些性能问题。

Andy建议?

回答

1

老实说,这似乎是每个列表项矫枉过正管理权限的一点点,但如果这是你的要求... :)根据我的经验,只是因为人们有权修改所有这并不意味着项目他们将要编辑某人的其他物品(荣誉系统)。

我会创建两个SharePoint组:

  • 货品访客 - 的人谁可以读取所有列表项
  • 列表项成员 - 谁可以编辑所有列表项的人

然后,在列表设置中禁用“仅编辑您的项目”选项。

最后,在你的事件接收器,代码将添加货品游客读取,列出项目成员使用Contribute,并与贡献受让人。

这样,如果新用户以及需要读取所有项目来了:它们添加到Visitors组。如果有一个需要管理所有项目的“管理员”类型的人:将其添加到成员组。更改受让人将删除旧受让人并向CONTRIBUTE添加新受托人。

+0

嗨,谢谢你的回答:) 但不幸的是,要求严格要求,该项目只能由创建者和受让人编辑。 与此同时,我得到了这个想法,为所有人设置可编辑选项,并且检查事件接收者(更新),如果当前登录用户是创建者或项目的受让人。 这也会导致较低的性能影响。 我只怕缺乏安全因素,如果事件接收器被禁用,突然大家可以编辑任何东西。 (即使有荣誉制度,总会有黑羊;)) – 2010-07-14 07:22:42