...
Maintain all CTS STC group team lead lists in one step
This only works if nobody plays with the group names. Right now (Jan 2013) there are twelve STC groups that all start out with CTS STC.
Code Block |
---|
var groupStartsWith = 'CTS STC';
var gr0 = new GlideRecord('sys_user_group');
gr0.addQuery('name','STARTSWITH',groupStartsWith);
gr0.query();
while ( gr0.next() ) {
gs.log("group name: "+ gr0.name);
var groupName=gr0.name;
// set groupName to the group where you want to synchronize team leads to be the same
// as the set of all members of the group
// this is especially useful for CTS STC groups
var gr1 = new GlideRecord('sys_user_group');
gr1.addQuery('name',groupName);
gr1.query();
while ( gr1.next() ) {
gs.log("group name: "+ gr1.name + " and group full name: " + gr1.u_full_name + " and sys_id: " + gr1.sys_id);
gs.log("ORIGINAL group u_team_leads: " + gr1.u_team_leads);
var leadsString='';
var gr2 = new GlideRecord('sys_user_grmember');
gr2.addQuery('group',gr1.sys_id);
gr2.query();
while ( gr2.next() ) {
// gs.log("user sys_id is: " + gr2.user);
if ( leadsString.length > 0 ) {
leadsString+=',';
}
leadsString+=gr2.user;
}
gs.log("PROPOSED group leads: " + leadsString);
var gr3 = new GlideRecord('sys_user_group');
gr3.addQuery('name',groupName);
gr3.query();
while (gr3.next()){
gr3.u_team_leads = leadsString;
gr3.update();
}
var gr4 = new GlideRecord('sys_user_group');
gr4.addQuery('name',groupName);
gr4.query();
while (gr4.next()){
gs.log("UPDATED group u_team_leads: " + gr4.u_team_leads);
}
}
}
|