首页 > 解决方案 > SP 2013 通过 API 将用户添加到 SP 组而不授予权限

问题描述

我正在使用 SharePoint 2013 API 将用户添加到 groep 'Site eigenaren',这意味着他们将获得对网站的完全控制权。调用 API 后,在 SP 组的 UI 中可见,但没有获得该组的权限。

当我通过 UI 从组中删除它们并使用 UI 再次添加它们时,它们将获得权限。通过 API 添加用户时,还有什么需要做的吗?

我添加用户的代码:

function addUserToGroup(contextWebInfo, groupName, username) {
        console.log('Adding ' + username + ' to group ' + groupName);
        return fetch(currentSiteUrl + "/_api/web/sitegroups/getbyname('" + groupName + "')/users", {
            headers: new Headers({
                Accept: 'application/json;odata=verbose',
                'Content-Type': 'application/json;odata=verbose',
                'X-RequestDigest': contextWebInfo.d.GetContextWebInformation.FormDigestValue
            }),
            credentials: 'include',
            method: 'POST',
            body: JSON.stringify({ '__metadata': { 'type': 'SP.User' }, 'LoginName': 'BIJTJES\\' + username })
        }).then(function (response) {
            if(response.ok){
                console.log('User ' + username + ' added to group ' + groupName);
            }else{
                alert('Er is een fout opgetreden. Gelieve een melding op de SelfServiceDesk aan te maken met volgende tekst: Op site "' + currentSiteUrl + '" komt de foutmelding "' + response.error.message.value + '" bij het toevoegen van een lid aan de groep "' + groupName + '" als gebruiker "' + username + '"'); 
            }
        }).catch(function (error) { console.error('Error getting data:::', error); });
    }

标签: javascriptapisharepointsharepoint-2013

解决方案


我可以确认这个问题,我可以确认这也是使用JSOM而不是REST. 原来问题在于 SharePoint 何时使用声明。这意味着,如果您为 REST api 提供用户登录 ID(域\用户),它将完全做到这一点。但是,如果您将 " i:0#.w|" 添加到 user ID ("i:0#.w|domain\user"),一切正常。


推荐阅读