在Windows Sharepoint Services 3.0中仅编辑拥有的列表项

时间:2009-04-09 16:46:33

标签: sharepoint permissions wss wss-3.0

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

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

8 个答案:

答案 0 :(得分:4)

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

您可以为文档库设置相同的属性,如下所示:

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

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

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

答案 1 :(得分:2)

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

我经常需要将来自其他系统的文档复制到SharePoint中的列表中,在这种情况下,编辑权限将分配给传输文档的系统用户,除非您使用Kirk Liemohn建议的方法{{3} }

答案 2 :(得分:1)

请注意,对大量文档的项级别权限会大大增加SQL服务器的负载。

答案 3 :(得分:1)

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

你会看到

的部分

读取权限:指定用户可以阅读的项目

所有项目 只有他们自己的

修改权限:指定用户可以修改的项目

所有项目 只有自己 没有

根据要求选择选项。就是这样...... 想更多点击http:// mastermoss.wordpress.com

答案 4 :(得分:1)

这是一个老问题,但问题仍然存在。

过去对我来说效果很好的一种方法是使用工作流来配置添加库项目时的权限。

有关详细信息,请参阅http://www.sharepointusecases.com/index.php/2010/03/configure-item-level-permissions-for-document-libraries-part-2/

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

授予每个人对SharePoint列表/文档库的读取权限,但为每个人提供对其自己的文件夹的完全控制权限。这将允许每个人阅读列表中的所有内容,但创建/编辑自己的文档。

答案 7 :(得分:0)

如果您希望文档库具有“仅限他们自己”的权限,则它不是开箱即用的。但我在CodePlex上创建了一个解决方案,为文档库添加了这个解决方案 - 请在http://moresharepoint.codeplex.com查看。