[SMPL] - FIM - function deactivateEmployee_2024-01-24 10_43_30.sop (1,4 КБ)
Цель: деактивировать пользователей из экземпляра SimpleOne
На вход нужен массив с sys_id пользователей, которых нужно деактивировать
Скрипт для деактивации пользователей экземпляра
- Деактивируем учетную запись в таблице employee
- Удаляем Роли сотрудника
- Удаляем группы сотрудника
- Удаляем токены пользователя
Для удаления нужно раскомментировать строки
//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-файл