如何仅为“添加”和“查看”设置SharePoint Online列表权限,而不是“编辑”?

时间:2014-02-02 20:39:16

标签: sharepoint office365 sharepoint-list

我在SharePoint Online中有一个SharePoint列表(基于SharePoint Server 2013),我想让用户将项目添加到列表中,但不能编辑任何项目。一旦他们提交了该项目,我希望对其进行审核并使其他内容依赖于此,因此我无法让用户进行更改。我只能看到可以为用户分配的Contribute权限,这允许创建,查看和编辑。任何人都知道如何为仅创建和查看的用户分配权限。不包括编辑?

4 个答案:

答案 0 :(得分:1)

您可以创建自定义权限级别,然后将其分配给库的用户/组。

要创建自定义权限级别,请转到“网站设置” - >网站权限 - >许可级别 - >添加权限级别

答案 1 :(得分:1)

您可以通过复制“Contribute”权限并从中删除“编辑”来创建新的自定义权限级别。网站设置 - >网站权限 - >许可级别 - >点击“Contribute” - >在下一页复制权限级别取消选中“编辑”并创建。 您也可以使用功能接收器以编程方式执行相同的操作。

SPRoleDefinition roleDefinition = new SPRoleDefinition();
                        roleDefinition.Name = "School user custom permission";
                        roleDefinition.Description = "This Permission level has rights to add and view items.";
                        roleDefinition.BasePermissions = SPBasePermissions.AddListItems | SPBasePermissions.ViewListItems |SPBasePermissions.DeleteListItems|
                            SPBasePermissions.ViewPages | SPBasePermissions.ViewFormPages | SPBasePermissions.OpenItems | SPBasePermissions.ViewVersions | SPBasePermissions.DeleteVersions
                            | SPBasePermissions.CreateAlerts | SPBasePermissions.BrowseDirectories | SPBasePermissions.BrowseUserInfo | SPBasePermissions.UseRemoteAPIs | SPBasePermissions.Open
                            | SPBasePermissions.EditMyUserInfo | SPBasePermissions.ManagePersonalViews | SPBasePermissions.UpdatePersonalWebParts;
                        web.RoleDefinitions.Add(roleDefinition);

答案 2 :(得分:0)

MSFT说您可以通过他们的siet设置执行此操作,但我按照以下说明操作,但仍然无法完善添加权限级别。

创建权限级别 要创建权限级别,请按照以下步骤操作。

在网站集的顶级网站上,单击“设置小设置”设备,取代“网站设置”,然后单击“网站设置”。 在“网站设置”页上的“用户和权限”部分中,单击“网站权限”。 在“权限”选项卡上,单击“权限级别”。 在“权限级别”页面上,单击“添加权限级别”。 在“添加权限级别”页面的“名称和说明”框中,键入权限级别的名称和说明。 在“权限”区域中,选中要与此权限级别关联的列表,站点和个人权限旁边的复选框。 单击“创建”。

答案 3 :(得分:0)

我也在努力解决这个问题。显然,外部用户默认情况下不能访问UseRemoteAPIs权限。通过反复试验证明了这一点。我无法找到任何备份文件。

也就是说,作为Office365 SharePoint网站的管理员,您可以关闭UseRemoteAPIs权限的要求,以便允许客户端JavaScript在外部或匿名用户上按预期运行。

此博客有类似问题,虽然他的上下文适用于O365公共SharePoint网站(https://yieldreturnpost.wordpress.com/2014/08/28/anonymous-api-access-for-office-365-public-sites/),但同样适用于常规O365 SharePoint网站:

<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(function() {
   var ctx = new SP.ClientContext();
   var site = ctx.get_site();
   site.updateClientObjectModelUseRemoteAPIsPermissionSetting(false);
   ctx.executeQueryAsync(
      function() { alert('success') },
      function() { alert('error') }
   );
}, 'sp.js');
</script>

请注意,您只需在网站上进行一次上述调用即可。