officeEdit.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * ПОЛУЧЕНИЕ СПИСКА РЕДАКТОРОВ, КОРРЕКТОРОВ И РЕЦЕНЗЕНТОВ
  3. * Copyright © 2021, А.М.Гольдин. ISC license
  4. */
  5. "use strict";
  6. // Если объект аргументов пустой,
  7. // возвращает несортированный массив сотрудников вида
  8. // [["pupkin", "Пупкин Иван Иванович", 6], ["ejov", "Ежов Петр Петрович", 1]]`
  9. // Последнее число - это двоичный код ролей (Editor, Corrector, Reviewer)
  10. //
  11. // Если передан объект {oper: "add", login:..., fio:..., eml:..., roles:...},
  12. // добавляет сотрудника
  13. //
  14. // Если передан объект {oper: "del", login: ...}, удаляет сотрудника
  15. //
  16. // arg - это переданный модулю объект с аргументами
  17. // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
  18. module.exports = async (arg, user) => {
  19. try {
  20. // Проверяем полномочия клиента (модуль доступен только гл. редактору)
  21. if (user[0] !== 8) return "none";
  22. // Смотрим на запрашиваемую функцию
  23. if (!Object.keys(arg).length) {
  24. let staffList = [];
  25. let res = await dbFind("staff", {});
  26. for (let staff of res) staffList.push(
  27. [staff.login, staff.fio, staff.eml, staff.roles]
  28. );
  29. return JSON.stringify(staffList);
  30. }
  31. else if (arg.oper == "add") {
  32. db.staff.insert({
  33. login:arg.login, fio:arg.fio, eml:arg.eml, roles:arg.roles
  34. });
  35. return "success";
  36. }
  37. else if (arg.oper == "del") {
  38. db.staff.remove({login:arg.login}, {});
  39. return "success";
  40. }
  41. else return "none";
  42. }
  43. catch(e) {return "none";}
  44. };