我们在 SharePoint 根站点下为不同部门创建了一个 Page; IT.aspx、Finance.aspx 等。
如果来自 IT 部门的用户登录到 SharePoint 根站点 https://ourcompanyrootsite.sharepoint.com,我们需要将用户重定向到仅为 IT 部门/IT 创建的页面。 aspx。我在搜索中找到了以下代码,但它仅适用于经典 SharePoint 网站。有人有这种经历吗?谢谢。
<script type='text/javascript'>
function IsCurrentUserMemberOfGroup(groupName, OnComplete) {
var context = new SP.ClientContext.get_current();
var currentWeb = context.get_web();
var currentUser = context.get_web().get_currentUser();
context.load(currentUser);
var allGroups = currentWeb.get_siteGroups();
context.load(allGroups);
var group = allGroups.getByName(groupName);
context.load(group);
var groupUsers = group.get_users();
context.load(groupUsers);
context.executeQueryAsync(
function (sender, args) {
var userInGroup = IsUserInGroup(currentUser, group);
OnComplete(userInGroup);
},
function OnFailure(sender, args) {
OnComplete(false);
}
);
function IsUserInGroup(user, group) {
var groupUsers = group.get_users();
var userInGroup = false;
var groupUserEnumerator = groupUsers.getEnumerator();
while (groupUserEnumerator.moveNext()) {
var groupUser = groupUserEnumerator.get_current();
if (groupUser.get_id() == user.get_id()) {
userInGroup = true;
break;
}
}
return userInGroup;
}
}
Usage:
function DoesCurrentUserBelongToGroup() {
IsCurrentUserMemberOfGroup("IT Members", function (isCurrentUserInGroup) {
if (isCurrentUserInGroup) {
location.href = "IT Department Url";
}
});
IsCurrentUserMemberOfGroup("Finance Members", function (isCurrentUserInGroup) {
if (isCurrentUserInGroup) {
location.href = "Finance Url";
}
});
}
ExecuteOrDelayUntilScriptLoaded(DoesCurrentUserBelongToGroup, 'SP.js');
</script>