4

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

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

4

8 回答 8

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 的这篇文章更详细地解释了它,他甚至编写了一个命令行工具来设置列表和库的属性(加上.ReadSecurity属性)。

于 2009-05-07T14:20:21.930 回答
2

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

我经常需要将文档从另一个系统复制到 SharePoint 中的列表中,在这种情况下,编辑权限将分配给传输文档的系统用户,除非您使用 Kirk Liemohn 建议的方法here

于 2009-04-09T22:55:16.043 回答
1

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

于 2009-04-13T16:17:05.063 回答
1

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

你会看到的部分

读取权限:指定用户可以读取哪些项目

所有项目只有他们自己

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

所有项目 只有他们自己的 无

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

于 2009-05-19T13:34:14.550 回答
1

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

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

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

于 2011-08-31T11:52:14.130 回答
0

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

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

于 2009-04-09T20:02:49.577 回答
0

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

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

于 2009-04-09T20:18:44.047 回答
0

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

于 2010-07-03T04:52:06.703 回答