Name

sn_entitlement.UserDao

Description

No description available

Script

/**
* Data access functions that return a single or many userIds (sys_user.sys_id)
*/
var UserDao = Class.create();
UserDao.prototype = {
  initialize: function() {},
  
  /**
   * Retrieves the sys_user.sys_id values for all active users
   *
   * @returns {array} An array of sys_user.sys_id values
   */
  getUserIdsByActive: function() {
      const gr = new GlideRecord('sys_user');
      gr.addQuery('active', true);
      gr.query();
      
      let ids = [];
      while (gr.next())
          ids.push(gr.getUniqueValue());
      return ids;
  },
  
  /**
   * Checks to see if the user is active and returns a boolean indicating if it is or not
   *
   * @param {guid} userId the sys_user.sys_id to check
   * @returns {bool} True if the user exists and is active
   */
  getUserIdIsActive: function(userId) {
      const gr = new GlideRecord('sys_user');
      gr.addQuery('sys_id', userId);
      gr.addQuery('active', true);
      gr.query();
      
      return gr.hasNext();
  },
  
  /**
   * Retieves the sys_user.sys_id values for all active users that also have at least 
   * one of the roles provided.
   *
   * @param {array} roleIds An array of sys_user_role.sys_id values to filter users down
   * @returns {array} An array of sys_user.sys_id values
   */
  getUserIdsByActiveAndHasRole: function(roleIds) {
      const gr = new GlideRecord('sys_user_has_role');
      gr.addQuery('user.active', true);
      gr.addQuery('role.sys_id', 'IN', roleIds);
      gr.query();
      
      let ids = new Set();
      while (gr.next())
          ids.add(String(gr.user.sys_id));
      return Array.from(ids);
  },
  
  type: 'UserDao'
};

Sys ID

e4774f39ff18e110468365d7d3b8feec

Offical Documentation

Official Docs: