fix: svod password 12345678, persist to gitignored file
This commit is contained in:
parent
3adb655b0a
commit
3c3fadb716
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,3 +4,5 @@ uploads/
|
|||||||
.vibe42-run.log
|
.vibe42-run.log
|
||||||
.vibe42-run.pid
|
.vibe42-run.pid
|
||||||
.env
|
.env
|
||||||
|
|
||||||
|
.kfu-svod-pw.txt
|
||||||
|
|||||||
10
lib/store.js
10
lib/store.js
@ -53,16 +53,18 @@ function randPassword(len) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function makeUser(record) {
|
function makeUser(record) {
|
||||||
|
const pw = record._seedPassword || randPassword(12);
|
||||||
const salt = crypto.randomBytes(32);
|
const salt = crypto.randomBytes(32);
|
||||||
const pw = randPassword(12);
|
|
||||||
const hash = crypto.scryptSync(pw, salt, 32);
|
const hash = crypto.scryptSync(pw, salt, 32);
|
||||||
|
const { _seedPassword, ...rest } = record;
|
||||||
return Object.assign(
|
return Object.assign(
|
||||||
{ failedCount: 0, lockedUntil: 0 },
|
{ failedCount: 0, lockedUntil: 0 },
|
||||||
record,
|
rest,
|
||||||
{
|
{
|
||||||
salt: salt.toString("hex"),
|
salt: salt.toString("hex"),
|
||||||
passwordHash: hash.toString("hex"),
|
passwordHash: hash.toString("hex"),
|
||||||
active: true,
|
active: true,
|
||||||
|
...(record._keepTemp ? { tempPassword: pw } : {})
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -76,13 +78,15 @@ function seed() {
|
|||||||
users: [],
|
users: [],
|
||||||
reports: [],
|
reports: [],
|
||||||
};
|
};
|
||||||
const consPw = randPassword(12);
|
const consPw = process.env.KFU_SVOD_PASSWORD || "12345678";
|
||||||
const cons = makeUser({
|
const cons = makeUser({
|
||||||
id: "u_consolidator",
|
id: "u_consolidator",
|
||||||
role: "consolidator",
|
role: "consolidator",
|
||||||
name: "",
|
name: "",
|
||||||
companyName: "",
|
companyName: "",
|
||||||
login: "svod",
|
login: "svod",
|
||||||
|
_seedPassword: consPw,
|
||||||
|
_keepTemp: true,
|
||||||
});
|
});
|
||||||
db._consolidatorTempPassword = consPw;
|
db._consolidatorTempPassword = consPw;
|
||||||
db.users.push(cons);
|
db.users.push(cons);
|
||||||
|
|||||||
@ -24,6 +24,7 @@ const DB = store.load();
|
|||||||
let GENERATED_PASSWORD = DB._consolidatorTempPassword || null;
|
let GENERATED_PASSWORD = DB._consolidatorTempPassword || null;
|
||||||
if (GENERATED_PASSWORD) {
|
if (GENERATED_PASSWORD) {
|
||||||
log("FIRST RUN: consolidator login=svod password=" + GENERATED_PASSWORD);
|
log("FIRST RUN: consolidator login=svod password=" + GENERATED_PASSWORD);
|
||||||
|
require("fs").writeFileSync(require("path").join(__dirname, ".kfu-svod-pw.txt"), GENERATED_PASSWORD);
|
||||||
delete DB._consolidatorTempPassword;
|
delete DB._consolidatorTempPassword;
|
||||||
store.save(DB);
|
store.save(DB);
|
||||||
}
|
}
|
||||||
@ -585,7 +586,9 @@ function handleConsolidatorPassword(req, res) {
|
|||||||
readBody(req).then(function (b) {
|
readBody(req).then(function (b) {
|
||||||
const cur = String(b.current || "");
|
const cur = String(b.current || "");
|
||||||
if (!store.verifyPassword(cur, user.salt, user.passwordHash)) {
|
if (!store.verifyPassword(cur, user.salt, user.passwordHash)) {
|
||||||
return sendJson(res, 401, { error: "Текущий пароль неверен" });
|
if (!user.tempPassword || cur !== user.tempPassword) {
|
||||||
|
return sendJson(res, 401, { error: "Текущий пароль неверен" });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const nw = String(b.next || "");
|
const nw = String(b.next || "");
|
||||||
if (nw.length < 4) return sendJson(res, 400, { error: "Новый пароль — минимум 4 символа" });
|
if (nw.length < 4) return sendJson(res, 400, { error: "Новый пароль — минимум 4 символа" });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user