1234567891011121314151617181920212223242526272829303132333435 |
- /**
- * ПОЛУЧЕНИЕ ID СТАТЕЙ, НАЗНАЧЕННЫХ КОРРЕКТОРУ ИЛИ РЕЦЕНЗЕНТУ
- * Copyright © 2021, А.М.Гольдин. ISC license
- */
- "use strict";
- // Возвращает массив id, либо "none" в случае ошибки
- // arg - это "corr" или "rev"
- // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
- module.exports = async (arg, user) => {
- try {
- let resp = [], ids;
- // Проверяем его роль
- let roles = "000";
- let staff = await dbFind("staff", {login: user[1]});
- if (staff[0]) roles = staff[0].roles.toString(2).padStart(3, '0');
- if (user[1] == ADMIN) {
- roles = "111";
- user[1] = "ADMIN";
- }
- if (arg == "corr" && !roles[1]) return "none";
- if (arg == "rev" && !roles[2]) return "none";
- if (arg != "corr" && arg != "rev") return "none";
- // Загружаем данные из базы
- if (arg == "corr") ids = await dbFind("articles", {corr: user[1]});
- else ids = await dbFind("articles", {rev: user[1]});
- for (let art of ids) resp.push(art._id);
- return JSON.stringify(resp);
- }
- catch(e) {return "none";}
- };
|