1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * ПОЛУЧЕНИЕ СПИСКА РЕДАКТОРОВ, КОРРЕКТОРОВ И РЕЦЕНЗЕНТОВ
- * Copyright © 2021, А.М.Гольдин. ISC license
- */
- "use strict";
- // Если объект аргументов пустой,
- // возвращает несортированный массив сотрудников вида
- // [["pupkin", "Пупкин Иван Иванович", 6], ["ejov", "Ежов Петр Петрович", 1]]`
- // Последнее число - это двоичный код ролей (Editor, Corrector, Reviewer)
- //
- // Если передан объект {oper: "add", login:..., fio:..., eml:..., roles:...},
- // добавляет сотрудника
- //
- // Если передан объект {oper: "del", login: ...}, удаляет сотрудника
- //
- // arg - это переданный модулю объект с аргументами
- // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
- module.exports = async (arg, user) => {
- try {
- // Проверяем полномочия клиента (модуль доступен только гл. редактору)
- if (user[0] !== 8) return "none";
- // Смотрим на запрашиваемую функцию
- if (!Object.keys(arg).length) {
- let staffList = [];
- let res = await dbFind("staff", {});
- for (let staff of res) staffList.push(
- [staff.login, staff.fio, staff.eml, staff.roles]
- );
- return JSON.stringify(staffList);
- }
- else if (arg.oper == "add") {
- db.staff.insert({
- login:arg.login, fio:arg.fio, eml:arg.eml, roles:arg.roles
- });
- return "success";
- }
- else if (arg.oper == "del") {
- db.staff.remove({login:arg.login}, {});
- return "success";
- }
- else return "none";
- }
- catch(e) {return "none";}
- };
|