123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /**
- * ИЗМЕНЕНИЕ СТАТУСА СТАТЬИ, ПРОШЕДШЕЙ КОРРЕКТУРУ
- * Copyright © 2021, А.М.Гольдин. ISC license
- */
- "use strict";
- // Возвращает массив "success" либо "none"
- // user - это данные клиента [3, "ivanov", "Иванов", "Ян", "Карлович"]
- module.exports = async (id, user) => {
- try {
- // Правда ли он корректор?
- 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";
- if (!roles[1]) return "none";
- // Есть ли такая статья и не опубликована ли она уже?
- let res = await dbFind("articles", {_id: id});
- if (!res.length) return "none";
- if (res[0].status == 7) return "none";
- let title = res[0].head,
- author = res[0].author,
- eml = res[0].eml;
- // Обновляем статус
- let now = (new Date()).toISOString().split('T')[0]
- . replace(/(\d+)-(\d+)-(\d+)/, "$3.$2.$1");
- await db.articles.update(
- {_id: id}, {$set: {status: 6, dt2: now}}, {}
- );
- // Посылаем письмо автору
- await sendEml(eml, `Статья прошла корректуру`,
- `Уважаемый(ая) ${author}!\n\n`
- + `Ваша статья «${title}» прошла корректуру и готовится к `
- + `публикации. О публикации статьи вы будете проинформированы `
- + `по электронной почте.`
- );
- return "success";
- }
- catch(e) {return "none";}
- };
|