Sharepoint - 如何设置权限级别以添加项目而不是视图?

时间:2009-02-09 13:27:36

标签: sharepoint

我想允许某组用户将项目添加到列表中,但无法查看所有项目。这样我就可以设置一个工作流程,将其中的某些部分设为私有。我认为通过以下方式定义新的权限级别是可能的:

http://servername/_layouts/addrole.aspx('添加权限级别'页面)

但是,当您选择“添加项目”列表权限时,也会自动勾选“查看项目”。

任何人都知道解决方案吗?

11 个答案:

答案 0 :(得分:10)

作为中途选项,您可以将列表设置为仅向所有者显示项目(设置>高级设置,然后设置读取权限/编辑权限的选项 as“Only their own”。这不会阻止一个人看到他们添加的所有项目,但在此权限之外不会有任何可见的内容(除了列表所有者)。

答案 1 :(得分:4)

“查看项目”是“添加项目”的从属权限,因此不确定我们是否可以在sharepoint中添加此类权限OOB,请查看此处:  (http://office.microsoft.com/en-us/sharepointtechnology/HA101001491033.aspx

你可以有一个简单的解决方法,即创建2个列表,然后在第一个列表的项目添加事件中添加代码,将项目添加到另一个列表,然后将其从第一个列表中删除,不确定这是否是一个好的解决方案。 。

答案 2 :(得分:2)

$spweb=Get-SPWeb -Identity "<site url>";
$spRoleDefinition = New-Object Microsoft.SharePoint.SPRoleDefinition;
$spRoleDefinition.Name = "Submit only";
$spRoleDefinition.Description = "Can submit/add forms/files/items into library or list but cannot  view/edit them.";
$spRoleDefinition.BasePermissions = "AddListItems, ViewPages, ViewFormPages, Open";
$spweb.RoleDefinitions.Add($spRoleDefinition);

取自: http://sajiviswam.wordpress.com/2011/12/09/add-only-permission-level-in-sharepoint-2010/

答案 3 :(得分:1)

我遇到了类似的问题,不希望匿名用户看到列表内容。

同样的解决方案可能对此有用。

在SharePoint设计器中(由于某种原因无法在Web上编辑页面),打开DispForm.aspx页面和webpart属性,添加目标受众(如果没有人看到make webpart隐藏)请勿删除WEBPART - 这样做会打破你的清单!

可以对AllItems.aspx

做同样的事情

希望这有帮助。

答案 4 :(得分:1)

在工作流程中使用模拟步骤。

答案 5 :(得分:0)

使用SharePoint设计器开箱即用,我只能考虑使用工作流将任何项目从公共“保管箱”列表移动到安全列表。

用户可以查看项目并将其上传到公共保管箱,但是工作流程立即启动,只是将内容移动到另一个相同的安全列表。您可以决定是否需要允许内容覆盖。

一个hacky解决方法,但没有所有SharePoint的编程。 (我公司不会让我给它编写代码)

答案 6 :(得分:0)

您没有真正指定您正在使用的列表类型,但如果查看“高级设置”下的列表设置,您可能会找到“项级别权限”部分。这将允许您选择限制用户只阅读(或编辑)他们提交的项目。这超出了列表中设置的任何其他ACL或其项目。

答案 7 :(得分:0)

我认为使用高级权限是无法访问的,因为它无法阻止提交的人查看它,否则它是一个很好的解决方案! 我认为,工作流程可以完成这项工作。只需确保上传工作流的项目何时被触发。然后,如果您可以构建可以为项目设置特定权限的工作流程,那么应该完成所有事情。 如果你没有弄清楚构建工作流程,那么当有一种称为列视图权限的即插即用解决方案时,请转到3w.sharepointboost.com。

答案 8 :(得分:0)

我正在为此快速解决方案,在我发现此消息时进行研究。 除了SPD工作流程,不会与匿名用户合作,我正在考虑做一个infopath html表单,将表单邮寄到表单库。您可以使用一个表单库作为启动表单的站点,然后将结果存储在不同的表单库中。由于您可以将表单库设置为接受来自任何人的电子邮件,因此您可以阻止人们阅读,但他们仍然可以进行编辑。

没试过,但如果我遇到问题就会发表评论。

答案 9 :(得分:0)

我完全赞同'Ceesaaxp'。在列表的高级设置下,将读取权限设置为 Only Their Own 。我创建了一个知识管理流程,我创建了两个列表,一个用于待处理的知识文章,另一个用于批准。我修改了待处理列表的“新表单”页面,并使用JavaScript禁用了一个下拉框,该框用作文章的状态。然后将此下拉列表永久设置为“待定”。我还创建了一个新的权限级别,允许用户只添加项目。然后,我创建了一个工作流程,当状态下拉框设置为“已批准”时,该工作流将文章移动到“已批准”列表中。

然后我将待处理列表的高级设置中的只读设置更改为仅自己的设置,因此所有知识文章在发布之前都已获得批准。

答案 10 :(得分:0)

@Jomit。您的解决方法可能有效,但它有赛车条件问题。用户可能仍有机会看到其他项目。根据您的规定,这可能是禁忌。

SharePoint中的常规列表在“设置/高级设置/项目级别权限”下提供此选项。虽然由于某些原因,文档表单库的GUI中缺少此选项。

一种可能的解决方案是使用SharePoint对象模型编写一个简单的程序来进行这些更改。 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.writesecurity.aspx

// Sample code for setting writing and reading security on a form library
class Program
            {
                static void Main(string[] args)
                {
                    using (SPSite site = new SPSite(args[0]))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            SPList list = web.Lists[args[1]];
                            list.WriteSecurity = 2;
                            list.ReadSecurity = 2;
                            list.Update();
                        }
                    }
                }
            }