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