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