Исправление багов авторизации, корзины и админки

- Исправлено выпадающее меню профиля (hover-баг с margin-top)
- Исправлена авторизация: правильные пути к API (api/auth.php)
- Исправлены ссылки на админку (admin/index.php вместо admin_panel.php)
- Исправлены пути API корзины в catalog.php и checkout.php
- Добавлена форма добавления/редактирования товаров в админке
- Исправлены кнопки +/- в корзине (улучшена обработка AJAX)
- Исправлена регистрация: правильные пути и обработка boolean в PostgreSQL
- Добавлена миграция для назначения прав админа пользователю admin@mail.ru
- Удален тестовый блок 'Быстрый вход' для неавторизованных пользователей
- Улучшена обработка ошибок во всех API-эндпоинтах
This commit is contained in:
kirill.khorkov
2025-12-16 02:58:44 +03:00
parent 3f257120fa
commit 29b9aaac50
388 changed files with 15312 additions and 3220 deletions

View File

@@ -0,0 +1,50 @@
-- 004_grant_admin_to_admin_mail.sql
-- Миграция: Назначение прав администратора пользователю admin@mail.ru
-- Обновляем пользователя admin@mail.ru, давая ему права администратора
UPDATE users
SET is_admin = TRUE,
is_active = TRUE,
updated_at = CURRENT_TIMESTAMP
WHERE email = 'admin@mail.ru';
-- Проверяем результат
DO $$
DECLARE
updated_count INTEGER;
user_info RECORD;
BEGIN
GET DIAGNOSTICS updated_count = ROW_COUNT;
IF updated_count > 0 THEN
-- Получаем информацию об обновленном пользователе
SELECT user_id, email, full_name, is_admin, is_active
INTO user_info
FROM users
WHERE email = 'admin@mail.ru';
RAISE NOTICE 'Пользователь % (ID: %) успешно получил права администратора',
user_info.email, user_info.user_id;
RAISE NOTICE 'ФИО: %, Админ: %, Активен: %',
user_info.full_name, user_info.is_admin, user_info.is_active;
ELSE
-- Если пользователь не найден, создаем его с правами админа
INSERT INTO users (email, password_hash, full_name, phone, city, is_admin, is_active)
VALUES (
'admin@mail.ru',
'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', -- admin123
'Администратор',
'+79129991223',
'Москва',
TRUE,
TRUE
)
ON CONFLICT (email) DO UPDATE
SET is_admin = TRUE,
is_active = TRUE,
updated_at = CURRENT_TIMESTAMP;
RAISE NOTICE 'Пользователь admin@mail.ru создан/обновлен с правами администратора';
END IF;
END $$;