getRevCorID.js 1.3 KB

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