This commit is contained in:
kirill.khorkov
2025-12-17 01:18:27 +03:00
parent 8a93cf8657
commit a7282f7363
394 changed files with 16013 additions and 146 deletions

View File

@@ -0,0 +1,85 @@
<?php
require_once __DIR__ . '/../config/database.php';
echo "===========================================\n";
echo " Назначение прав администратора\n";
echo "===========================================\n\n";
try {
$db = Database::getInstance()->getConnection();
echo "[OK] Подключение к базе данных успешно\n\n";
$email = 'admin@mail.ru';
$checkStmt = $db->prepare("SELECT user_id, email, full_name, is_admin, is_active FROM users WHERE email = ?");
$checkStmt->execute([$email]);
$user = $checkStmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
echo "[INFO] Найден пользователь:\n";
echo " Email: {$user['email']}\n";
echo " ФИО: {$user['full_name']}\n";
echo " Админ: " . ($user['is_admin'] ? 'ДА' : 'НЕТ') . "\n";
echo " Активен: " . ($user['is_active'] ? 'ДА' : 'НЕТ') . "\n\n";
if ($user['is_admin']) {
echo "[INFO] Пользователь уже имеет права администратора\n";
} else {
$updateStmt = $db->prepare("
UPDATE users
SET is_admin = TRUE,
is_active = TRUE,
updated_at = CURRENT_TIMESTAMP
WHERE email = ?
");
$updateStmt->execute([$email]);
echo "[SUCCESS] Права администратора успешно назначены!\n";
}
} else {
echo "[WARN] Пользователь с email $email не найден\n";
echo "[INFO] Создаю нового пользователя с правами администратора...\n";
$password_hash = password_hash('admin123', PASSWORD_DEFAULT);
$insertStmt = $db->prepare("
INSERT INTO users (email, password_hash, full_name, phone, city, is_admin, is_active)
VALUES (?, ?, ?, ?, ?, CAST(? AS boolean), TRUE)
RETURNING user_id
");
$insertStmt->execute([
$email,
$password_hash,
'Администратор',
'+79129991223',
'Москва',
'true'
]);
$user_id = $insertStmt->fetchColumn();
echo "[SUCCESS] Пользователь создан с ID: $user_id\n";
echo "[INFO] Email: $email\n";
echo "[INFO] Пароль по умолчанию: admin123\n";
echo "[WARN] Рекомендуется сменить пароль после первого входа!\n";
}
$verifyStmt = $db->prepare("SELECT user_id, email, full_name, is_admin, is_active FROM users WHERE email = ?");
$verifyStmt->execute([$email]);
$finalUser = $verifyStmt->fetch(PDO::FETCH_ASSOC);
echo "\n===========================================\n";
echo " Итоговый статус:\n";
echo "===========================================\n";
echo " Email: {$finalUser['email']}\n";
echo " ФИО: {$finalUser['full_name']}\n";
echo " Админ: " . ($finalUser['is_admin'] ? 'ДА ✓' : 'НЕТ ✗') . "\n";
echo " Активен: " . ($finalUser['is_active'] ? 'ДА ✓' : 'НЕТ ✗') . "\n";
echo "===========================================\n";
} catch (PDOException $e) {
echo "[ERROR] Ошибка: " . $e->getMessage() . "\n";
exit(1);
}