Check if user has a specific role in server side script
In Server side side we can use gs.hasRole("itil") to know if the logged in user has "itil" role. But this has an issue as for an admin it will return always true.
Instead use the below script to check the role
Script Include: userRoleUtility
var userRoleUtility = Class.create();userRoleUtility.prototype = { initialize: function() {
},
hasRole: function(user,role){var userRole = new GlideRecord('sys_user_has_role');
userRole.addEncodedQuery('role.name='+role+'user='+user);
userRole.query();if(userRole.next()){return true;}else{
return false;
}},type: 'userRoleUtility'
};
Server side script Usage
var user= new userRoleUtility();
gs.info(user.hasRole(gs.getUserID(),"itil"));
https://www.servicenow.com/community/now-platform-articles/check-if-user-has-a-specific-role-in-server-side-script/ta-p/2320629
