This commit is contained in:
denis 2025-05-26 12:11:18 +07:00
parent af70e6e986
commit d25fa7dc87
4 changed files with 28 additions and 36 deletions

View File

@ -112,19 +112,19 @@ const loginUser = async (req, res, next) => {
throw new Error('Пожалуйста, укажите email и пароль.'); throw new Error('Пожалуйста, укажите email и пароль.');
} // Проверяем наличие специального логина для администратора } // Проверяем наличие специального логина для администратора
if (email === 'admin') { if (email === 'admin') {
// Для логина "admin" не нормализуем email // Для логина "admin" проверяем аккаунт admin@example.com
console.log('Попытка входа с административным логином'); console.log('Попытка входа с административным логином через "admin"');
const user = await User.findOne({ email: 'admin' }).select('+password'); const user = await User.findOne({ email: 'admin@example.com' }).select('+password');
if (!user) { if (!user) {
console.log('Административный аккаунт не найден в базе данных'); console.log('Административный аккаунт не найден в базе данных');
console.log('Создание административного аккаунта...'); console.log('Создание административного аккаунта...');
try { try {
// Если админ не найден, можно попытаться создать его на месте // Если админ не найден, создаем его с валидным email
const adminUser = new User({ const adminUser = new User({
name: 'Администратор', name: 'Администратор',
email: 'admin', email: 'admin@example.com', // Используем валидный email
password: 'admin124', // Пароль будет хеширован pre-save hook password: 'admin124', // Пароль будет хеширован pre-save hook
dateOfBirth: new Date('1990-01-01'), dateOfBirth: new Date('1990-01-01'),
gender: 'other', gender: 'other',

View File

@ -15,20 +15,20 @@ mongoose.connect(process.env.MONGO_URI)
const createAdminAccount = async () => { const createAdminAccount = async () => {
try { try {
// Check if admin already exists // Check if admin already exists - use a valid email format
const adminExists = await User.findOne({ email: 'admin' }); const adminExists = await User.findOne({ email: 'admin@example.com' });
if (adminExists) { if (adminExists) {
console.log('Admin account already exists'); console.log('Admin account already exists');
console.log('Email: admin'); console.log('Email: admin@example.com');
console.log('Password: admin124'); console.log('Password: admin124');
process.exit(0); process.exit(0);
} }
// Create admin user // Create admin user with a valid email format
const admin = new User({ const admin = new User({
name: 'Администратор', name: 'Администратор',
email: 'admin', email: 'admin@example.com',
password: 'admin124', password: 'admin124',
dateOfBirth: new Date('1990-01-01'), dateOfBirth: new Date('1990-01-01'),
gender: 'other', gender: 'other',
@ -40,9 +40,8 @@ const createAdminAccount = async () => {
} }
}); });
await admin.save(); await admin.save(); console.log('Admin account created successfully');
console.log('Admin account created successfully'); console.log('Email: admin@example.com');
console.log('Email: admin');
console.log('Password: admin124'); console.log('Password: admin124');
process.exit(0); process.exit(0);
} catch (error) { } catch (error) {

View File

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

View File

@ -22,8 +22,8 @@ const connectDB = async () => {
// Function to create admin // Function to create admin
const createAdmin = async () => { const createAdmin = async () => {
try { try {
// Check if admin exists // Check if admin exists with valid email format
let admin = await User.findOne({ email: 'admin' }); let admin = await User.findOne({ email: 'admin@example.com' });
if (admin) { if (admin) {
console.log('Admin user already exists:'); console.log('Admin user already exists:');
@ -50,7 +50,7 @@ const createAdmin = async () => {
admin = new User({ admin = new User({
name: 'Администратор', name: 'Администратор',
email: 'admin', email: 'admin@example.com', // Use valid email format
password: hashedPassword, password: hashedPassword,
dateOfBirth: new Date('1990-01-01'), dateOfBirth: new Date('1990-01-01'),
gender: 'other', gender: 'other',
@ -150,15 +150,10 @@ const main = async () => {
// Create admin alias // Create admin alias
const adminAlias = await createAdminAlias(); const adminAlias = await createAdminAlias();
console.log('\nAdmin Credentials:');
console.log('\nAdmin Credentials:'); console.log('Email: admin@example.com');
console.log('1. Login: admin'); console.log('Password: admin124');
console.log(' Password: admin124'); console.log('\nYou can also use "admin" as username and "admin124" as password');
if (adminAlias) {
console.log('2. Login: admin@example.com');
console.log(' Password: admin124');
}
console.log('\nDone!'); console.log('\nDone!');
process.exit(0); process.exit(0);