Reflex/backend/utils/initAdmin.js
2025-05-26 12:05:51 +07:00

51 lines
2.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const User = require('../models/User');
const bcrypt = require('bcryptjs');
/**
* Инициализирует административный аккаунт в системе
* Аккаунт создается с логином admin и паролем admin124
* Этот аккаунт будет всегда активен
*/
const initAdminAccount = async () => {
try {
console.log('[ADMIN INIT] Проверка наличия административного аккаунта...');
// Проверяем, существует ли уже админ
const adminExists = await User.findOne({ email: 'admin', isAdmin: true });
if (!adminExists) {
console.log('[ADMIN INIT] Административный аккаунт не найден. Создаю новый...');
// Создаем админа, если не существует
const admin = new User({
name: 'Администратор',
email: 'admin', // Используем 'admin' как логин
password: 'admin124',
dateOfBirth: new Date('1990-01-01'), // Устанавливаем формальную дату рождения
gender: 'other',
isActive: true,
isAdmin: true,
location: {
city: 'Admin',
country: 'System'
}
}); // Сохраняем админа
const savedAdmin = await admin.save();
if (savedAdmin) {
console.log('[ADMIN INIT] Административный аккаунт успешно создан с логином: admin');
console.log('[ADMIN INIT] ID администратора:', savedAdmin._id);
console.log('[ADMIN INIT] Для входа используйте: логин "admin", пароль "admin124"');
} else {
console.error('[ADMIN INIT] Ошибка при сохранении администратора - не возвращен объект');
}
} else {
console.log('[ADMIN INIT] Административный аккаунт с логином "admin" уже существует');
console.log('[ADMIN INIT] ID администратора:', adminExists._id);
}
} catch (error) {
console.error('[ADMIN INIT] Ошибка при инициализации админ-аккаунта:', error.message);
console.error('[ADMIN INIT] Полная ошибка:', error);
}
};
module.exports = initAdminAccount;