在Windows Sharepoint Services 3.0中仅编辑拥有的列表项
是否有办法限制WSS 3.0中的“编辑项”权限,使其仅允许用户编辑自己的文档或列表项?我们需要用户能够只编辑他创建的文档/列表项,而不是其他人创建的项。所以,本质上我们需要编辑权限和添加权限的子集在Windows Sharepoint Services 3.0中仅编辑拥有的列表项,sharepoint,permissions,wss,wss-3.0,Sharepoint,Permissions,Wss,Wss 3.0,是否有办法限制WSS 3.0中的“编辑项”权限,使其仅允许用户编辑自己的文档或列表项?我们需要用户能够只编辑他创建的文档/列表项,而不是其他人创建的项。所以,本质上我们需要编辑权限和添加权限的子集 这在Windows Sharepoint Services 3.0中是否可行?有没有办法在代码或功能中创建自定义权限?我相信这样的权限可以通过用户界面创建。这取决于列表项目的规模和数量,但您可以做以下两件事之一。首先(无需创建脚本),您可以给每个人一个自定义的“读取”权限访问权限,该权限不允许他们在“
这在Windows Sharepoint Services 3.0中是否可行?有没有办法在代码或功能中创建自定义权限?我相信这样的权限可以通过用户界面创建。这取决于列表项目的规模和数量,但您可以做以下两件事之一。首先(无需创建脚本),您可以给每个人一个自定义的“读取”权限访问权限,该权限不允许他们在“读取”权限中执行所有您可以执行的操作,但允许他们添加项目。然后逐项单击项目->管理权限->(授予特定用户对其文档的贡献权限)
如果您创建的SharePoint列表不实用,您可以创建一个脚本来遍历所有项目,并验证用户是否具有“贡献”权限(否则它将为该用户设置“贡献”权限)。此外,您可以为每个人提供自己的文件夹
授予每个人对SharePoint列表/文档库的读取权限,但授予每个人对自己文件夹的完全控制权限。这将允许每个人阅读列表中的所有内容,但创建/编辑自己的文档。如果向文档列表添加事件处理程序,则应该能够将该项目的编辑权限限制为创建该项目的用户
我经常需要将其他系统中的文档复制到SharePoint中的列表中,在这种情况下,编辑权限将分配给传输文档的系统用户,除非您使用Kirk Liemohn建议的方法,否则请注意,对大量文档的项级权限会大大增加SQL server的负载。WSS有一个基本UI,用于设置列表项的项级权限,但它们会将其隐藏在文档库的UI中。如果您进入
Settings->List Settings->avavanced Settings
查看列表,您将看到一些选项,这些选项几乎可以满足您的要求。但是,在文档库上,该UI不可用。不过,它驱动的设置可以通过对象模型获得
您可以为文档库设置相同的属性,如下所示:
SPDocumentLibrary onlyOwnLib = theWeb.Lists["DocLibName"]
onlyOwnLib.WriteSecurity = 2;
onlyOwnLib.Update();
这应该可以做到。然而,显然这并没有真正设置权限;它只是控制用户可以通过UI做什么。如果他们有另一个指向库(如通过WebDAV)或列表(如通过web服务)的接口,则不会阻止他们编辑未创建的项目。如果您想要真正的项目级权限,我认为您需要执行事件处理程序路径
马特·莫尔斯对此做了更详细的解释,他甚至编写了一个命令行工具来设置列表和库的属性(加上
.ReadSecurity
属性) 这是您请求的解决方案。
转到列表->列表设置->高级设置
您将看到
读取权限:指定用户可以读取的项目
所有项目
只有他们自己
编辑访问权限:指定用户可以编辑的项目
所有项目
只有他们自己
没有
根据需求选择选项。就这样了。。
想要更多的点击http://mastermoss.wordpress.com如果你想在文档库上获得“只有他们自己”的权限,它不是现成的。但是我已经在CodePlex创建了一个解决方案,为文档库添加了这个解决方案-请查看。这是一个老问题,但是问题仍然存在 在过去对我很有效的一种方法是在添加库项目时使用工作流来配置权限
有关详细信息,请参阅 更新-我们需要继承才能从列表一直工作到项目,因此设置每个项目的权限对我们来说并不真正有效。最终会导致一些存储过程中断。我们有一个很大的文档库,其中每个项目都有自己的安全性。当我们试图查询项目时,它不会返回所有预期结果。SPQuery在10次联接后恢复为临时表,然后放弃。。。将文档库拆分为更小的部分后,一切都恢复正常。