/
une
/
BOUTIQUE
Обзор
Документация
Войти
/
une
/
BOUTIQUE
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
backend/create-admin.js
86 строк
3 KB
une
first commit
16 дек 2025, 21:00
16 дек 2025, 21:00
b14658a
Код
Авторство
О чём код?
const Database = require('./database'); const bcrypt = require('bcrypt'); async function createAdminAccount() { const db = new Database(); await db.init(); const adminEmail = 'admin@boutique.com'; const adminPassword = 'Admin123!'; const adminName = 'Администратор'; try { console.log('🔄 Создание админ-аккаунта...'); // Хэшируем пароль const hashedPassword = await bcrypt.hash(adminPassword, 10); // Проверяем, есть ли уже админ const existingAdmin = await new Promise((resolve, reject) => { db.db.get('SELECT id, email FROM users WHERE email = ? OR role = ?', [adminEmail, 'admin'], (err, row) => { if (err) reject(err); else resolve(row); } ); }); if (existingAdmin) { // Обновляем роль на admin await new Promise((resolve, reject) => { db.db.run( 'UPDATE users SET role = ?, password = ? WHERE id = ?', ['admin', hashedPassword, existingAdmin.id], function(err) { if (err) reject(err); else resolve(); } ); }); console.log(`✅ Существующий пользователь ${existingAdmin.email} обновлен до администратора`); } else { // Создаем нового админа await new Promise((resolve, reject) => { db.db.run( 'INSERT INTO users (name, email, password, role) VALUES (?, ?, ?, ?)', [adminName, adminEmail, hashedPassword, 'admin'], function(err) { if (err) reject(err); else resolve(); } ); }); console.log('✅ Администратор создан'); } // Проверяем результат const checkAdmin = await new Promise((resolve, reject) => { db.db.get( 'SELECT id, name, email, role FROM users WHERE email = ?', [adminEmail], (err, row) => { if (err) reject(err); else resolve(row); } ); }); console.log('\n📋 ===== АДМИН ДАННЫЕ ====='); console.log('👤 Имя:', checkAdmin.name); console.log('📧 Email:', checkAdmin.email); console.log('🔑 Пароль:', adminPassword); console.log('👑 Роль:', checkAdmin.role); console.log('🆔 ID:', checkAdmin.id); console.log('==========================\n'); console.log('⚠️ Сохраните эти данные! После первого входа смените пароль.'); } catch (error) { console.error('❌ Ошибка:', error); } finally { await db.close(); } } // Запускаем создание админа createAdminAccount().catch(console.error);