如何根据登录用户部门将现代 SharePoint 根站点重定向到不同的页面?

时间:2021-06-17 16:04:31

标签: javascript sharepoint

我们在 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>

0 个答案:

没有答案