Name

global.UserHasRoleAjaxSNC

Description

Called by Highlight invalid owner/manager client script Customers should not change this class directly This class is never called directly.

Script

var UserHasRoleAjaxSNC = Class.create();

UserHasRoleAjaxSNC.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  ajaxFunction_userHasRole: function() {
  	var userIds = this.getParameter('sysparm_user_sys_ids');
  	var kb = this.getParameter('sysparm_kb');
  	var field = this.getParameter('sysparm_field');
  	
  	userIds = GlideStringUtil.split(userIds);
  	var users = [];
  	var canRunScript;
  	
  	var kbGr = new GlideRecord('kb_knowledge_base');
  	if(kb != "-1")
  		canRunScript = kbGr.get(kb) && kbGr[field].canWrite();
  	else {
  		kbGr.initialize();
  		canRunScript = kbGr[field].canCreate();
  	}
  	if(canRunScript){
  		for(var i = 0; i < userIds.size(); i++) {
  			var hasRoleGR = new GlideRecord('sys_user_has_role');
  			var sysId = userIds.get(i);
  			hasRoleGR.addQuery('user', sysId);
  			var orCondition = hasRoleGR.addQuery('role.name', 'knowledge_manager');
  			orCondition.addOrCondition('role.name', 'admin'); 
  			hasRoleGR.query();

  			if (!hasRoleGR.hasNext()){
  				var user = GlideUser.getUserByID(sysId);
  				users.push(user.getFullName());
  			}
  		}
  	}
  	return users.join(", ");
  }

});

Sys ID

ebf2247bb712230026778d78ee11a9bc

Offical Documentation

Official Docs: