query to see if user is in a group

sigmachiuta
Kilo Guru

i am trying to query in a business rule to see if the opened by user of a change is a part of a group.   i cant seem to use current.opened_by.isMemberOf()

so i am querying the group table but i am not returning any results

var usr = current.opened_by.getDisplayValue();

 

  var gr = new GlideRecord('sys_user_grmember');

  gr.addQuery('group','group name');

  gr.addQuery('user',usr);

  gr.query();

  while (gr.next()){

  gs.log('query ran');

  if (gr.user != null){

  gs.log('query found' + gr.user);

//do processing

  }else{

gs.log('no user found')

}

  }

1 ACCEPTED SOLUTION

var gr2 = new GlideRecord('sys_user_group');  


gr2.addQuery('name', 'Desktop Support');  


gr2.query();  


  while (gr2.next()){  


      var groupsys = gr2.sys_id;  


      gs.log('The GroupSys ' +groupsys);  


  }  


 


var gr = new GlideRecord('sys_user_grmember');  


gr.addQuery('group', groupsys);  


gr.addQuery('user',current.opened_by);    


gr.query();  


if (gr.next()) {


  gs.log('query ran');


  gs.log('This person is ' + gr.user + ' is a member');


}


else


{


  gs.log('the query still ran');


  gs.log('No user');


}


View solution in original post

13 REPLIES 13

Srinivas Balusu
Kilo Guru

So it gives 'no user found'?


no i put a log at the start and end and i get business rule started, business rule ended without any logs between them thats why i am confused


Srinivas Balusu
Kilo Guru

.getDisplayvalue gives name results like 'Robert', But while querying you have to give sys_id.



SO in your case give



gr.addQuery('user',current.opened_by); which passes the sys_id to query


Mihir Mohanta
Kilo Sage

Hi,


I have modified the script.Please try it



var usr = current.opened_by;  


     


  var gr = new GlideRecord('sys_user_grmember');  


  gr.addQuery('group','sys_id of the group you want');  


  gr.addQuery('user',usr);  


  gr.query();  


  while (gr.next()){  


  gs.log('query ran');  


  if (gr.user != null){  


  gs.log('query found' + gr.user);  


//do processing  


 


  }else{  


gs.log('no user found')  


 


}  


  }  



You can also achieve this by using isMemberOf() function.



Thanks,


Mihir