51 lines
2.6 KiB
JavaScript
51 lines
2.6 KiB
JavaScript
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; |