Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Edit option for adding members to group is not working for user

jobin1
Tera Expert

Hi All

 

When the below user is  trying to add a member to this group showing below message "Action not authorized"

why so how we can rectify this? and group type is security

@Hajar Benjahhar Any idea?

find_real_file.png

 

17 REPLIES 17

@Filipe Cruz Its not working.

@Filipe Cruz 

 

This issue is happening because of below BR we have made few changes in below br that time on words this issue is happening.

Can you have a check please?

Br after change

***********

(function executeRule(current, previous /*null when async*/ ) {(function executeRule(current, previous /*null when async*/ ) {
    //11232020_Nikita- Storing the Current Domain sysID in string field    var currentDomain1 = gs.getSession();    var currentDomain = currentDomain1.getCurrentDomainID();
    var acc_sysid;    var domain_name;    //11232020_Nikita- Getting Current Domain name    var domain_gr = new GlideRecord('domain');    domain_gr.addQuery('sys_id', currentDomain);    domain_gr.setLimit(1);    domain_gr.query();    if (domain_gr.next()) {
        domain_name = domain_gr.name;
        if (domain_name == 'Accenture') {            acc_sysid = domain_gr.sys_id;        }    }
    var arr2 = [];    var grpname_member;    var grpname_member1;    var user_sysid = gs.getUserID();    var query1 = 'user=' + user_sysid + '^group.roles=accenture_operations_group_manager';
    var gr1 = new GlideRecord('sys_user_grmember');    gr1.addEncodedQuery(query1);    gr1.query();    while (gr1.next()) {        var gr_grpname1 = gr1.group.name;        var sys_domain_name = gr1.group.company.name;
        if (sys_domain_name == domain_name) {            grpname_member = gr1.group.name;            grpname_member1 = gr1.group.parent.name;
        }
        arr2.push(gr_grpname1);
    }
    var arr = [];    var quer2 = 'nameIN' + arr2;
    var gr = new GlideRecord('sys_user_group');    gr.addEncodedQuery(quer2);    gr.query();    while (gr.next()) {
        var gr_grpname = gr.parent.name;        arr.push(gr_grpname);
    }    //11232020_Nikita- Fetching visibility group sysID    var domain_grtype1 = new GlideRecord('sys_user_group_type');    domain_grtype1.addQuery('name', 'IN', 'Visibility');    domain_grtype1.setLimit(1);    domain_grtype1.query();    if (domain_grtype1.next()) {        var domain_type2 = domain_grtype1.sys_id;    }
    var domain_type3;    var valsecurity = new GlideRecord('sys_user_group_type');    valsecurity.addQuery('name', 'IN', 'Security');    valsecurity.setLimit(1);    valsecurity.query();    if (valsecurity.next()) {        domain_type3 = valsecurity.sys_id;    }
    var clntadmngrp = sys_domain_name + " Client Administration";    var clntadmngrp2 = sys_domain_name + " Visibility";
    var encquery1 = 'sys_domain=' + currentDomain;    var encquery2 = 'name=' + clntadmngrp2 + '^ORname=' + clntadmngrp + '^ORsys_domain=' + sys_domain_name + '^ORtype=NULL' + '^sys_domain!=global'; var encquery3 = 'nameIN' + arr;
    if (currentDomain == acc_sysid) {        //11232020_Nikita- Filtering only 'Visibility' type groups having accenture domain.        current.addEncodedQuery(encquery3);    } else {        //11232020_Nikita- Filtering a domain specific visibility group and current Domain Groups.        if ((gs.getUser().isMemberOf(grpname_member1)) && (gs.getUser().isMemberOf(grpname_member))) {            current.addEncodedQuery(encquery2);         } else {            //11232020_Nikita- Filtering current Domain Groups.            current.addEncodedQuery(encquery1);        }    }})(current, previous);

 

 

Working fine Br before change

*********************

(function executeRule(current, previous /*null when async*/ ) {

//11232020_Nikita- Storing the Current Domain sysID in string field
var currentDomain1 = gs.getSession();
var currentDomain = currentDomain1.getCurrentDomainID();

var acc_sysid;
//11232020_Nikita- Getting Current Domain name
var domain_gr = new GlideRecord('domain');
domain_gr.addQuery('sys_id', currentDomain);
domain_gr.query();
if (domain_gr.next()) {

var domain_name;
domain_name = domain_gr.name;

if (domain_name == 'Accenture') {
acc_sysid = domain_gr.sys_id;
}
}


var arr2 = [];
var grpname_member;
var grpname_member1;
var user_sysid = gs.getUserID();
var query1 = 'user=' + user_sysid + '^group.roles=accenture_operations_group_manager';

var gr1 = new GlideRecord('sys_user_grmember');
gr1.addEncodedQuery(query1);
gr1.query();
while (gr1.next()) {
var gr_grpname1 = gr1.group.name;
var sys_domain_name = gr1.group.company.name;

if (sys_domain_name == domain_name) {
grpname_member = gr1.group.name;
grpname_member1 = gr1.group.parent.name;

}

arr2.push(gr_grpname1);

}

var arr = [];
var quer2 = 'nameIN' + arr2;

var gr = new GlideRecord('sys_user_group');
gr.addEncodedQuery(quer2);
gr.query();
while (gr.next()) {

var gr_grpname = gr.parent.name;
arr.push(gr_grpname);

}
//11232020_Nikita- Fetching visibility group sysID
var domain_grtype1 = new GlideRecord('sys_user_group_type');
domain_grtype1.addQuery('name', 'IN', 'Visibility');
domain_grtype1.query();
if (domain_grtype1.next()) {
var domain_type2 = domain_grtype1.sys_id;
}

var encquery1 = 'sys_domain=' + currentDomain;
var encquery2 = 'nameSTARTSWITH' + grpname_member1 + '^ORsys_domain=' + currentDomain;
var encquery3 = 'nameIN' + arr;

if (currentDomain == acc_sysid) {
//11232020_Nikita- Filtering only 'Visibility' type groups having accenture domain.
current.addEncodedQuery(encquery3);
} else {
//11232020_Nikita- Filtering a domain specific visibility group and current Domain Groups.
if ((gs.getUser().isMemberOf(grpname_member1)) && (gs.getUser().isMemberOf(grpname_member))) {
current.addEncodedQuery(encquery2);
} else {
//11232020_Nikita- Filtering current Domain Groups.
current.addEncodedQuery(encquery1);
}

}

})(current, previous);

 

@Hajar Benjahhar tried contacting you but  no luck

 

 

@Filipe Cruz 

Got the issue -its with below query we have added "^ORnameLIKEGroup Manager'" that time its working but we don't want to show that group manager group

so what will be the solution?

 

find_real_file.png