123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * ПОЛУЧЕНИЕ ДАННЫХ О РЕЦЕНЗЕНТАХ И КОРРЕКТОРАХ (ТОЛЬКО ПО ЗАПРОСУ РЕДАКТОРА)
- * Copyright © 2021, А.М.Гольдин. ISC license
- */
- "use strict";
- // Возвращает строку для вставки в <select>
- // arg - это "rev" или "corr"
- // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
- module.exports = async (arg, user) => {
- try {
- // Проверяем, является ли он редактором
- let roles = 0;
- let staff = await dbFind("staff", {login: user[1]});
- if (staff[0]) roles = staff[0].roles;
- let isEditor =
- roles.toString(2).padStart(3, '0')[0] == "1" || user[1] == ADMIN;
- if (!isEditor) return "none";
- // Допустимые статусы для рецензента и корректора
- let status = arg == "rev" ? [1, 3, 5, 7] : [2, 3, 6, 7];
- // Получаем всех сотрудников из базы и фильтруем
- let resp = '';
- if (user[1] == ADMIN)
- resp += `<option value="ADMIN">Я (главный редактор)</option>`;
- let res = await dbFind("staff", {});
- for (let sotr of res) {
- if (!status.includes(sotr.roles)) continue;
- resp += `<option value="${sotr.login}">${sotr.fio}</option>`;
- }
- if (!resp) resp = "none";
- return resp;
- }
- catch(e) {console.info(e); return "none";}
- };
|