How to use user_id in user criteria

RudhraKAM
Tera Guru

I have a user criteria, which is working fine but when validating using "User Criteria Diagnostics tool " its failing , after some reasearch came to know that we need to use user_if as part of the KB0750243

 

Below is my user criteria, how do I  make this work?

var staffGroup;
var LDAPUser;
var grUser = new GlideRecord('u_private_ldap_user_table');
//grUser.addQuery('u_user_name',gs.getUserName());   //
grUser.addQuery('u_user_name',gs.get(user_id));
grUser.addQuery('u_mbu_standardized','NOT IN',"Hs,Sw,Hw,UPG").addOrCondition('u_mbu_standardized', 'NULL');
grUser.query();
if(grUser.next()) {
	LDAPUser =  'true';
}
else{
	LDAPUser = 'false';
}

var grGroup = new GlideRecord('sys_user_grmember');
grGroup.addQuery('user',gs.getUserID());
grGroup.addQuery('group','d473b4f6db946304f032f1f51d961905');
grGroup.query();
if(grGroup.next()){
	staffGroup = "true";
}
else {
	staffGroup = "false";
}


if(LDAPUser== 'true' && staffGroup== 'true' )
	{
	answer = true;
}
else {
	answer = false;
}
1 ACCEPTED SOLUTION

Markus Kraus
Kilo Sage

The following script should work:

var currentUserGr = new GlideRecord('sys_user');
if (currentUserGr.get(user_id)) {
  // avoid health-scan get-warnings
}

var staffGroup;
var LDAPUser;
var grUser = new GlideRecord('u_private_ldap_user_table');
//grUser.addQuery('u_user_name',gs.getUserName());   //
grUser.addQuery('u_user_name',currentUserGr.user_name);
grUser.addQuery('u_mbu_standardized','NOT IN',"Hs,Sw,Hw,UPG").addOrCondition('u_mbu_standardized', 'NULL');
grUser.query();
if(grUser.next()) {
	LDAPUser =  'true';
}
else{
	LDAPUser = 'false';
}

var grGroup = new GlideRecord('sys_user_grmember');
grGroup.addQuery('user',user_id);
grGroup.addQuery('group','d473b4f6db946304f032f1f51d961905');
grGroup.query();
if(grGroup.next()){
	staffGroup = "true";
}
else {
	staffGroup = "false";
}


if(LDAPUser== 'true' && staffGroup== 'true' )
	{
	answer = true;
}
else {
	answer = false;
}

View solution in original post

2 REPLIES 2

Brian Lancaster
Tera Sage

I'm a little confused about your question. Is the user criteria not work or is it just not work in the Diagnostics tool. If it is just not working in the diagnostics tool then I think the KB article explains why. I don't see a problem record associated with this KB so it may be something they think is a low priority. You could put in an enhancement request via the idea port to try and get this fixed.

Markus Kraus
Kilo Sage

The following script should work:

var currentUserGr = new GlideRecord('sys_user');
if (currentUserGr.get(user_id)) {
  // avoid health-scan get-warnings
}

var staffGroup;
var LDAPUser;
var grUser = new GlideRecord('u_private_ldap_user_table');
//grUser.addQuery('u_user_name',gs.getUserName());   //
grUser.addQuery('u_user_name',currentUserGr.user_name);
grUser.addQuery('u_mbu_standardized','NOT IN',"Hs,Sw,Hw,UPG").addOrCondition('u_mbu_standardized', 'NULL');
grUser.query();
if(grUser.next()) {
	LDAPUser =  'true';
}
else{
	LDAPUser = 'false';
}

var grGroup = new GlideRecord('sys_user_grmember');
grGroup.addQuery('user',user_id);
grGroup.addQuery('group','d473b4f6db946304f032f1f51d961905');
grGroup.query();
if(grGroup.next()){
	staffGroup = "true";
}
else {
	staffGroup = "false";
}


if(LDAPUser== 'true' && staffGroup== 'true' )
	{
	answer = true;
}
else {
	answer = false;
}