SharePoint 2013 - Web 应用程序权限策略问题



在我们的 sharepoint 服务器场中,我们有两个组:

用户 - 包含我们应用程序的所有用户(包括管理员(

管理员 - 包含具有管理员权限的用户

我目前正在尝试拒绝"用户"组中所有用户访问系统页面(_layouts/文件(,以防止在不通过相应的 webpart UI 的情况下修改列表等。 为此,我在查看应用程序页面上添加了带有 DENY 的权限策略。这对于普通用户来说应该是这样,但问题是它也阻止了管理员访问列表等。

我尝试向管理员组授予所有内容,但拒绝仍然覆盖它阻止访问。

当管理员的用户在其他组中被阻止时,如何向管理员授予访问权限?

您可以使用JSOM 解决方案,通过 JSOM(此线程的示例脚本(检查用户组和管理员。

下面的脚本包含要检查是否为用户管理员的逻辑。

function IsCurrentUserMemberOfGroups(groups, OnComplete) {
var currentContext = new SP.ClientContext.get_current();
var currentWeb = currentContext.get_web();
var currentUser = currentWeb.get_currentUser();
var isAdmin = currentUser.get_isSiteAdmin();
var oGroups = currentUser.get_groups();
currentContext.load(isAdmin);
currentContext.load(currentUser);
currentContext.load(oGroups);
currentContext.executeQueryAsync(OnSuccess, OnFailure);
function OnSuccess(sender, args) {
var userInGroup = false;
console.log('Admin check' + isAdmin);
if (!isAdmin) {
var groupEnumerator = oGroups.getEnumerator();
while (groupEnumerator.moveNext()) {
var oGroup = groupEnumerator.get_current();
var groupTitle = oGroup.get_title();
console.log(groupTitle);
$.each(groups, function (index, value) {
if (value == groupTitle) {
console.log('user in group ' + groupTitle);
userInGroup = true;
}
});
if (userInGroup)
break;
}
}
OnComplete(userInGroup);
}
function OnFailure(sender, args) {
OnComplete(false);
}
}

然后,将用户重定向到友好页面。

将脚本添加到母版页或添加为 javascript 链接,因为它需要全局运行。

SharePoint Custom JS 檔案 Best Practice

最新更新