Glide Ajax helps us to call from client-side to server-side code. By this example, we can check particular user is part of a specific group from the client side.
Client-Side (Client Script) Asynchronous Ajax:
var ga = new GlideAjax('Get_group_member');
ga.addParam('sysparm_name', 'getMemberof');
ga.addParam('sysparm_user', newValue);
ga.addParam('sysparm_group', 'SN-AD-Group');
ga.getXML(getData);
function getData(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if (answer == 'false'){
// nothing
}else{
g_form.addErrorMessage('is part of group mamaber');
g_form.clearValue('userid');
}
}
Synchronous Ajax:
getXMLWait() is not available to scoped applications and service portal.
var ga = new GlideAjax('Get_group_member');
ga.addParam('sysparm_name', 'getMemberof');
ga.addParam('sysparm_user', newValue);
ga.addParam('sysparm_group', 'SN-AD_PCI_Disabled_Group');
ga.getXMLWait();
alert(ga.getAnswer());
Server Side (Script Include): getMemberof function – single value return
getMemberof: function() {
var user = this.getParameter('sysparm_user');
var group = this.getParameter('sysparm_group');
var enq='group.name=' + group + '^user=' + user;
var gr = new GlideRecord('sys_user_grmember');
gr.addEncodedQuery(enq);
gr.query();
if (gr.next()) {
return true;
} else {
return false;
}
},
Check out the video for more details: