Name

sn_sow_itsm_common.SOWITSMCommonUtilsSNC

Description

No description available

Script

var SOWITSMCommonUtilsSNC = Class.create();
SOWITSMCommonUtilsSNC.prototype = {
  initialize: function() {},
  TABLES: {
      SYS_USER_GRMEMBER: 'sys_user_grmember'
  },

  getMemberGroups: function(userSysID, setlimit) {
      var memberGroups = [];
      var grMembers = new GlideRecord(this.TABLES.SYS_USER_GRMEMBER);
      grMembers.addQuery('group.active', 'true');
      grMembers.addQuery('user', userSysID);
      if (setlimit)
          grMembers.setLimit(setlimit);
      grMembers.query();
      while (grMembers.next()) {
          memberGroups.push(grMembers.group.sys_id);
      }
      return memberGroups;
  },

  canAssignToMe: function(current) {
      var currentTable = current.getTableName();
      var arrayUtil = new global.ArrayUtil();
      var allowedTables = ["problem", "incident", "change_request", "problem_task"];
      if (!arrayUtil.contains(allowedTables, currentTable))
          return false;
      if (!current.active && !current.isNewRecord())
          return false;
      if (!this._checkRolesForAssignment(currentTable))
          return false;
      if (!current.assigned_to.canWrite())
          return false;
      if (current.assigned_to)
          return false;
      return current.assignment_group.nil() || gs.getUser().isMemberOf(current.assignment_group.toString());
  },

  canAssignToMeOnList: function(current) {
      var currentTable = current.getTableName();
      var arrayUtil = new global.ArrayUtil();
      var allowedTables = ["problem", "incident", "change_request"];
      if (!arrayUtil.contains(allowedTables, currentTable))
          return false;
      if (!this._checkRolesForAssignment(currentTable))
          return false;
      return true;
  },

  _checkRolesForAssignment: function(currentTable) {
      if (currentTable === "problem" && !gs.hasRole('problem_coordinator'))
          return false;
      if (currentTable === "incident" && !gs.hasRole('itil') && !gs.hasRole('sn_incident_write'))
          return false;
      if (currentTable === "change_request" && !gs.hasRole('itil') && !gs.hasRole('sn_change_write'))
          return false;
      if (currentTable === "problem_task" && !gs.hasRole('problem_task_analyst'))
          return false;
      return true;
  },

  type: 'SOWITSMCommonUtilsSNC'
};

Sys ID

31903c09c7f13010d7e818b1c7c2603d

Offical Documentation

Official Docs: