Name

sn_hr_core.HrRoleManagement

Description

No description available

Script

var HrRoleManagement = Class.create();
HrRoleManagement.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
  addRemoveRolesForContact: function(newRoles, userSysId) {
      var roles = new hr_Utils();
  	var isHrAdmin = roles.checkUserHasRole('sn_hr_core.admin');
      var isLEAdmin = roles.checkUserHasRole('sn_hr_le.admin');
  	if (!isHrAdmin && !isLEAdmin)
  		return;
  	
  	newRoles = newRoles || this.getParameter("sysparm_add_roles");
  	var answer = [];
  	
  	//remove roles that were not in slushbucket
  	var gr = new GlideRecordSecure('sys_user_role');
  	gr.addQuery('name', 'STARTSWITH', "sn_hr_");
  	gr.addQuery('name', 'NOT IN', newRoles);
  	gr.query();
  	while (gr.next()) {
  		answer.push(gr.getValue('name'));
  	}
  	userSysId = userSysId || this.getParameter("sysparm_contact_id");
  	new global.HRSecurityUtilsAjax().removeUserRoles(userSysId, answer.join(','));
  	var rolesToAdd = [];
  	
  	//add roles that were in slushbucket
  	if(!gs.nil(newRoles)) {
  		rolesToAdd = newRoles.split(',');
  		for(var k=0; k<rolesToAdd.length; k++)
  			new hr_Utils().addUserRole(rolesToAdd[k], userSysId);
  	}
  },		
  	type: 'HrRoleManagement'
  });

Sys ID

727660915b32120088236ede91f91a9f

Offical Documentation

Official Docs: