Fix
This commit is contained in:
85
OLD_CODE/migrations/grant_admin.php
Normal file
85
OLD_CODE/migrations/grant_admin.php
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user