Cкрипт деактивации пользователей

[SMPL] - FIM - function deactivateEmployee_2024-01-24 10_43_30.sop (1,4 КБ)

Цель: деактивировать пользователей из экземпляра SimpleOne
На вход нужен массив с sys_id пользователей, которых нужно деактивировать

Скрипт для деактивации пользователей экземпляра

  1. Деактивируем учетную запись в таблице employee
  2. Удаляем Роли сотрудника
  3. Удаляем группы сотрудника
  4. Удаляем токены пользователя

Для удаления нужно раскомментировать строки
//group.deleteMultiple();
//role.deleteMultiple();

// Пример
// в employee_ids  id пользователей из таблицы employee
let employee_ids = [
    '170126461723964096', '169841701223768837', '169823165123881512',
  ]
 
 
function deactivateEmployee(arr) {
  if (!Array.isArray(arr)) {
    ss.addErrorMessage('Ошибка: Входной аргумент не является массивом');
  } else {
    ss.info("Каких пользователей будем удалять:");
    arr.forEach(sys_id => {
      getNameOfDeletedEmployee(sys_id)
      deactivateAccount(sys_id);
      deleteRoles(sys_id);
      deleteGroups(sys_id);
      deleteTokens(sys_id)
    });
  }
}


 
function deactivateAccount(sys_id) {
    const employee = new SimpleRecord('employee');
    let current = employee.get(sys_id);
    current.setValue('active', false);
    current.update();
  }
   
  function deleteRoles(sys_id) {
    const role = new SimpleRecord('sys_user_has_role');
    role.addEncodedQuery(`(user_id.sys_id=${sys_id})`);
    role.query();
    //role.deleteMultiple();
  }
   
  function deleteGroups(sys_id) {
    const group = new SimpleRecord('sys_user_group');
    group.addEncodedQuery(`(user_id.sys_id=${sys_id})`);
    group.query();
    //group.deleteMultiple();
  }
   
  function getNameOfDeletedEmployee(sys_id){
    const employee = new SimpleRecord('employee');
    let current = employee.get(sys_id);
    ss.info(current.email)
  }
   
  function deleteTokens(sys_id){
  const token = new SimpleRecord('user_token')
  token.addEncodedQuery(`(user_id.sys_id=${sys_id})^ORDERBYDESCsys_created_at'`);
  token.setLimit(1);
  token.query();
  //token.deleteMultiple();
   
  while(token.next()){
       ss.info('User: '+ token.user_id.email + " - " + 'last_token_time:'+ token.sys_created_at)
  }}
 
deactivateEmployee(employee_ids);

Прилагаю также sop-файл

9 лайков