Validate Peoplepicker column to check if user belongs to a specified group
-
20-12-2020 - |
Question
I have a people picker column "Assigned person" . I need to check on PreSaveAction() that entered user/s belong to a SharePoint group "Project leaders" or not. Any suggestion how do I get this done using javascript?
Solution
You check by below code and call CheckCurrentUserMembership() on PreSaveAction()
function CheckCurrentUserMembership() {
var clientContext = new SP.ClientContext.get_current();
var allGroups = currentWeb.get_siteGroups();
clientContext.load(allGroups);
var group = allGroups.getByName("Project leaders");
clientContext.load(group);
var groupUsers = group.get_users();
clientContext.load(groupUsers);
//var currentUser = clientContext.get_web().get_siteUsers().getById(userID);
clientContext.load(currentUser);
var userGroups = currentUser.get_groups();
clientContext.load(userGroups);
clientContext.executeQueryAsync(OnQuerySucceeded,OnQueryFailed);
}
function OnQuerySucceeded() {
var userInGroup = false;
var controlID = $("div[title='AssignedTo']").id;
var userID=SPClientPeoplePicker.SPClientPeoplePickerDict[controlID].GetAllUserInfo()[0].EntityData.SPUserID
var groupUserEnumerator = groupUsers.getEnumerator();
while (groupUserEnumerator.moveNext()) {
var groupUser = groupUserEnumerator.get_current();
if (groupUser.get_id() == userID) {
isMember = true;
alert('Is a member');
break;
}
}
}
function OnQueryFailed() {
OnResult(false);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange