To get the current user logged in SharePoint group name.
If you trying to iterate all the SharePoint groups the user may get access denied error.
Note: CSOM doesn't have impersonation facelity.
Here we can get only the specific group and find to get the logged user name
ExecuteOrDelayUntilScriptLoaded(IsCurrentUserHasContribPerms, 'SP.js');
function IsCurrentUserHasContribPerms()
{
IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup)
{
if(isCurrentUserInGroup)
{
// The current user is in the [Members] group!
}
});
}
function IsCurrentUserMemberOfGroup(groupName, OnComplete)
{
var currentContext = new SP.ClientContext.get_current();
var currentWeb = currentContext.get_web();
var currentUser = currentContext.get_web().get_currentUser();
currentContext.load(currentUser);
var allGroups = currentWeb.get_siteGroups();
currentContext.load(allGroups);
var group = allGroups.getByName(groupName);
currentContext.load(group);
var groupUsers = group.get_users();
currentContext.load(groupUsers);
currentContext.executeQueryAsync(OnSuccess,OnFailure);
function OnSuccess(sender, args) {
var userInGroup = false;
var groupUserEnumerator = groupUsers.getEnumerator();
var OwnergroupUserEnumerator = OwnergroupUsers.getEnumerator();
var statusval= $("select[title='ApprovalStatus'] option:selected").val();
while (OwnergroupUserEnumerator.moveNext()) {
var OwnergroupUser = OwnergroupUserEnumerator.get_current();
if (OwnergroupUser.get_id() == currentUser.get_id()) {
userInGroup = true;
break;
}
}
OnComplete(userInGroup);
}
function OnFailure(sender, args) {
OnComplete(false);
}
}

0 comments: