HimaniVerma14
Mega Sage

Hi Everyone,

In certain scenarios, there's a need to check whether the currently logged-in user is a member of a specific group from the client side. For this I wanted to share a quick reference how we can achieve it.

 

1. Create Script Include

Name : CheckmemberOf

Make Sure Client Callable is checked to true.

 

var CheckmemberOf = Class.create();
CheckmemberOf.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    checkGroupMember: function() {
        var grp = this.getParameter('sysparm_grp');
        return gs.getUser().isMemberOf(grp);
    },
    type: 'CheckmemberOf'
});

 

 2. Use above script include from client side script. 

 

function onLoad() {
    var ga = new GlideAjax('CheckmemberOf');
    ga.addParam('sysparm_name', 'checkGroupMember');
    ga.addParam('sysparm_grp', 'use the sys_id of group here');
    ga.getXML(checkGroup);
}

function checkGroup(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    if (answer == 'true') {
        alert('Logged in User is part of group');
    } else {
        alert('Logged in User is not part of group');
    }
}

 

Please feel free to share your feedback and let me know your views. 😊

 

Thanks

Himani

2 Comments
Sai18
Tera Expert

@HimaniVerma14  If we want to check currently logged-in user' MANAGER is a member of a specific group from the client side. How can we achieve this ?

HimaniVerma14
Mega Sage

Hi @Sai18 ,

 

Please modify the script  as shown below to fulfil your requirement.

Script Include :

var CheckmemberOf = Class.create();
CheckmemberOf.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    checkGroupMember: function() {
        var grp = this.getParameter('sysparm_grp');
        var logged_in_user = gs.getUserID();
        var loggedIn_User_Manager;
        var gr = new GlideRecord('sys_user');
        gr.addQuery('sys_id', logged_in_user);
        gr.query();
        if (gr.next()) {
            loggedIn_User_Manager = gr.getValue('manager');
            gs.info('LoggedIn manager' + loggedIn_User_Manager);
        }

        var gm = new GlideRecord('sys_user_grmember');
        gm.addQuery('group', grp);
        gm.addQuery('user', loggedIn_User_Manager);
        gm.query();
        if (gm.next()) {
            return true;
        } else {
            return false;
        }
    },
    type: 'CheckmemberOf'
});

Client Script :

function onLoad() {
    var ga = new GlideAjax('CheckmemberOf');
    ga.addParam('sysparm_name', 'checkGroupMember');
    ga.addParam('sysparm_grp', '<sys_id_of_your_group>');
    ga.getXML(checkGroup);
}

function checkGroup(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    if (answer == 'true') {
        alert('Logged in User Manager is part of group');
    } else if (answer == 'false') {
        alert('Logged in User Manager is not part of group');
    }
}

 

Thanks

Himani