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

49 lines
2.6 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] Проверка наличия административного аккаунта...');
// Проверяем, существует ли уже админ - используем правильный формат email
const adminExists = await User.findOne({ email: 'admin@example.com', isAdmin: true });
if (!adminExists) {
console.log('[ADMIN INIT] Административный аккаунт не найден. Создаю новый...');
// Создаем админа, если не существует - с валидным форматом email
const admin = new User({
name: 'Администратор',
email: 'admin@example.com', // Используем валидный email
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] Административный аккаунт успешно создан с email: admin@example.com');
console.log('[ADMIN INIT] ID администратора:', savedAdmin._id);
console.log('[ADMIN INIT] Для входа используйте: email "admin@example.com", пароль "admin124"');
} else {
console.error('[ADMIN INIT] Ошибка при сохранении администратора - не возвращен объект');
}
} else {
console.log('[ADMIN INIT] Административный аккаунт с email "admin@example.com" уже существует');
console.log('[ADMIN INIT] ID администратора:', adminExists._id);
}
} catch (error) {
console.error('[ADMIN INIT] Ошибка при инициализации админ-аккаунта:', error.message);
console.error('[ADMIN INIT] Полная ошибка:', error);
}
};
module.exports = initAdminAccount;