禁止在List或Doc lib中添加项目

时间:2010-02-28 03:41:18

标签: sharepoint permissions

如何禁止将项目或文档添加到列表或文档库?由于某些其他功能方案,我无法破坏角色继承并为列表设置了自定义权限。今天,我们使用事件处理程序(项目添加)来限制添加 - 但这会导致用户体验不佳。

是否有办法为列表进行角色继承并仍具有基本权限掩码?类似的东西,允许父网站提供的所有内容,但不允许X,Y,Z。以传统方式破坏角色继承引入了明确的用户和角色管理问题。让SPGoup持有另一个SPGoup可以在这里提供帮助,但这也是不可能的。让我知道你的建议。

5 个答案:

答案 0 :(得分:0)

我认为您要求允许用户添加列表权限,但实际上不允许添加到列表中。事件接收器将是最好的方式。我能想到的唯一其他解决方案是使用自定义项目表单进行检查。

答案 1 :(得分:0)

您可以通过创建具有以下功能的webpart来解决您的问题。

确定已登录用户位于管理员组中。如果他不在该组ganarte javascript警告“您没有添加新项目的权限”并重定向到(location.href =“”)allitems.aspx页面。

将此webpart放在Newform.aspx页面中。 (在Newform.aspx网址中添加& toolpaneview = 2& sharedview = true进行编辑页面)

希望这会有所帮助。如果您需要更多帮助,请告诉我。

答案 2 :(得分:0)

创建IHTTPModule并将上下文AuthenticateRequest事件子类化。

在AuthenticateRequest例程中,您可以检查正在执行的操作类型,然后将用户重定向到SharePoint“拒绝访问”页面。这正是SharePoint如何实现此功能,因此用户体验的实验将是相同的。

如果您需要我的意见,我会采用SharePoint处理权限的方式,并打破角色继承。当然它会给你的生活增添新的复杂性。但是,我认为您可以使用SharePoint Admin Toolkit和一些用于管理权限的自定义构建实用程序来更好地管理这些复杂性。我认为这比你想做的更好。

答案 3 :(得分:0)

我建议在这里遗漏一些东西:只是隐藏视图页面中的工具栏(或特定按钮)?这是在视图页面或SharePoint Designer中完成的无痛CSS挂钩

答案 4 :(得分:0)

如果您使用的是自定义列表模板,则可以create a custom View Toolbar Template。但是,您可能不希望在OOTB列表模板上使用它,并且它看起来不适用于an existing list

即使你实现了这一点,我仍然会留下事件接收器,以防止URL欺骗。