Reflex/backend/utils/initAdmin.js

51 lines
2.6 KiB
JavaScript
Raw Normal View History

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