Files
shop10/src/seed-admin.js
T

30 lines
1011 B
JavaScript

const bcrypt = require('bcryptjs');
const { query } = require('./db');
const { ROLES } = require('./constants/roles');
async function seedAdmin() {
const email = (process.env.ADMIN_EMAIL || 'admin@site.com').trim().toLowerCase();
const password = process.env.ADMIN_PASSWORD || 'admin';
const name = process.env.ADMIN_NAME || 'Администратор';
const { rows } = await query('SELECT id, role FROM users WHERE email = $1', [email]);
if (!rows[0]) {
const hash = bcrypt.hashSync(password, 10);
await query(
`INSERT INTO users (email, password_hash, name, role)
VALUES ($1, $2, $3, $4)`,
[email, hash, name, ROLES.ADMIN]
);
console.log('Создан администратор:', email);
return;
}
if (rows[0].role !== ROLES.ADMIN) {
await query('UPDATE users SET role = $1 WHERE id = $2', [ROLES.ADMIN, rows[0].id]);
console.log('Пользователю назначена роль admin:', email);
}
}
module.exports = { seedAdmin };