2009-04-09 75 views
3

是否有办法限制WSS 3.0中的“编辑项目”权限,以允许用户编辑自己的文档或列表项目?我们需要用户只能编辑他创建的文档/列表项目的能力 - 不是其他人创建的项目。所以,基本上我们需要一个EDIT权限的子集以及ADD。在Windows Sharepoint Services 3.0中仅编辑拥有的列表项目

这是可能的Windows Sharepoint Services 3.0?有没有办法在代码或功能中创建自定义权限?

+1

更新 - 我们需要从列表中继承工作到项目,因此设置每个项目的权限对我们来说不会真正起作用。 – dirq 2009-04-14 19:55:59

回答

4

WSS具有用于设置列表项目的项目级权限的基本UI,但它们隐藏了文档库的UI。如果你进入Settings->List Settings->Avanced settings列表,你会看到几乎做你要求的选项。但是,在文档库上,该UI不可用。它驱动的设置虽然可以通过对象模型获取。

你可以为文档库这样设置这些相同的属性:

SPDocumentLibrary onlyOwnLib = theWeb.Lists["DocLibName"] 
onlyOwnLib.WriteSecurity = 2; 
onlyOwnLib.Update(); 

,并应约做到这一点。但是,显然这并没有真正设置权限;它只是控制用户可以通过UI执行的操作。如果他们有另一个接口(如通过WebDAV)或列表(如通过Web服务),它不会阻止他们编辑他们没有创建的项目。如果你想要真正的项目级权限,我认为你需要去事件处理程序路线。

Matt Morse的post更详细地解释了它,他甚至写了一个命令行工具来设置列表和库的属性(加上.ReadSecurity属性)。

0

我相信这样的权限可以通过用户界面创建。这取决于你拥有的列表项目的规模和数量,但你可以做两件事之一。首先(不必创建脚本),您可以给每个人一个自定义的“读取”权限访问权限,这将不允许他们在读取权限中执行所有您可以执行的操作,但允许他们添加项目。然后在逐项的基础上,单击项目 - >管理权限 - >(赋予特定用户对其文档的Contribute权限)。

如果您创建的SharePoint列表不实用,您可以创建一个脚本遍历所有项目,并验证用户具有贡献权限(否则它将为该用户设置贡献权限) 。

0

此外,你可以给每个人自己的文件夹。

给每个人读取SharePoint列表/文档库的权限,但给每个人完全控制他们自己的文件夹的权限。这将允许每个人阅读列表中的所有内容,但是创建/编辑他们自己的文档。

2

如果您将事件处理程序添加到文档列表中,您应该能够将该项目的编辑权限限制为创建该项目的用户。

我经常不得不从另一个系统复制文件到SharePoint中的列表,在这种情况下,编辑权限将被分配给该转移的文件系统的用户,除非你使用由柯克Liemohn here

建议的方法
1

请注意,大量文档的项级权限会增加SQL服务器上的负载相当多。

+0

最终导致一些存储过程中断。我们有一个大的文档库,其中每个项目都有自己的安全。当我们试图查询这些项目时,它不会返回所有预期的结果。 SPQuery在10个连接后恢复为临时表,然后放弃......将文档库分割成更小的部分后,所有工作都重新开始。 – Colin 2009-06-11 09:12:18

1

这里是您的要求的解决方案。 转到列表 - >列表设置 - >高级设置

,你会看到的

读访问的部分:指定哪些项目用户可以阅读

只有自己的所有物品

编辑权限:指定用户可编辑的项目

全部项目 只有自己的 无

根据需求选择选项。这是它完成.. 想要更多点击http:// mastermoss.wordpress.com

0

如果你想在文档库的'只有他们自己'的权限,它不是开箱即用。但是我在CodePlex上创建了一个解决方案,它为文档库添加了这个解决方案 - 请参阅http://moresharepoint.codeplex.com

相关问题