Solution
The rest query url. This was tested in SharePoint Onlinevar isMember = false;
var userId = _spPageContextInfo.userId;// _spPageContextInfo.userId is current logged in user
var groupName = "Name of the group";
var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/sitegroups/getByName('"+ groupName +"')/Users?$filter=Id eq "+ userId ;
Once the results are received we have check the length of the results as below. if(result.data.d.results.length >0){
isMember = true;
}
The full code is below. Please note that I have used deferred in Angular JS.
function getIsCurrentUserInGroup()
{
var isMember = false;
var deferred = $q.defer();
var userId = _spPageContextInfo.userId;// _spPageContextInfo.userId is current logged in user
var groupName = "Name of the group";
var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/sitegroups/getByName('"+ groupName +"')/Users?$filter=Id eq "+ userId ;
$http({
url: url,
method: "GET",
contentType: "application/json;odata=verbose",
headers: { "Accept": "application/json; odata=verbose" }
}).then(function (result) {
if(result.data.d.results.length >0)
{
isMember = true;
}
deferred.resolve(isMember );
}, function (error) {
deferred.reject('Request failed. ' + errorCode.get_message() + '\n' + errorCode.get_stackTrace());
});
return deferred.promise;
}
No comments:
Post a Comment