##Практическая работа №18: Разработка ролевой модели и административной панели управления Дата выполнения: 2026-04-22 Цель: Реализовать разграничение прав доступа между ролями («Пользователь», «Менеджер», «Администратор»), создать административную панель для управления пользователями и просмотра системной аналитики, а также настроить условную видимость интерфейсных элементов. Выполненные задачи: Добавлено поле is_blocked BIT в таблицу users для функционала блокировки аккаунтов. Реализована маршрутизация при входе: User → только просмотр, Manager → CRUD операции, Admin → полный доступ + админ-панель. Создана страница AdminPanelPage.xaml с двумя вкладками: «Управление пользователями» (смена ролей, блокировка) и «Системная аналитика» (статистика по ролям, статусам и топ-5 записей). Настроена условная видимость кнопок CRUD в зависимости от роли текущего пользователя. Обновлены файлы database.sql и README.md (добавлена инструкция по тестированию ролей). Изменения зафиксированы в Git и загружены в репозиторий. Пример использования: -- Проверка прав доступа и статуса пользователей SELECT u.full_name, u.email, r.role_name, u.is_blocked, CASE WHEN u.is_blocked = 1 THEN 'Заблокирован' ELSE 'Активен' END as Status FROM users u JOIN user_roles r ON u.role_id = r.role_id;
-- Статистика для аналитики (количество пользователей по ролям) SELECT r.role_name, COUNT(u.user_id) as user_count FROM users u JOIN user_roles r ON u.role_id = r.role_id GROUP BY r.role_name; Логины admin@company.com manager@company.com user@company.com Пароль Любой