{% extends 'base.html' %} {% block content %}
Доработайте веб-приложение, разработанное в рамках ЛР4 "Реализация CRUD-интерфейса". Добавьте к нему функциональность авторизации пользователей и формирования статистических отчётов.
Авторизация пользователей
Добавьте в приложение авторизацию пользователей, то есть проверку прав пользователей на совершение определённых действий и ограничение доступа к функциональности, для доступа к которой у пользователя нет прав. Права пользователей должны быть привязаны к их ролям.
У пользователей с ролью "Администратор" есть право на:
У пользователей с ролью "Пользователь" есть право на:
Реализация проверки прав должна быть реализована при помощи декоратора check_rights, который можно применить к view function. В случае, если у пользователя оказалось недостаточно прав для выполнения запрашиваемого действия, его нужно перенаправить на главную страницу с сообщением "У вас недостаточно прав для доступа к данной странице.".
Пользователю не должны отображаться кнопки, соответствующие действиям, для выполнения которых у него недостаточно прав.
Формирование статистических отчётов
Добавьте в разрабатываемое приложение "Журнал посещений", в котором разместите информацию посещении пользователями различных страниц сайта. Для этого создайте таблицу visit_logs со следующими полями:
id INT — идентификатор записи,path VARCHAR(100) — путь до страницы,user_id INT — идентификатор пользователя (если пользователь не вошёл в систему — можно оставить пустым),created_at — дата посещения (проставляется автоматически).Для автоматического заполнения данной таблицы рекомендуется использовать декоратор before_request.
Функциональность формирования отчётов необходимо вынести в отдельный модуль и подключать к приложению при помощи Blueprint'а.
На главной странице журнала посещений нужно отобразить записи таблицы visit_logs, отсортированные по убыванию даты. На этой странице должна быть табличка с колонками:
Должна быть предусмотрена пагинация записей.
На главной странице журнала посещений должны быть расположены ссылки на страницы с отчётами по посещениям по страницам и по пользователям.
На странице с отчётом по страницам должна быть таблица, отображающая статистику посещения страниц сайта. В ней должны быть колонки "№", "Страница" и "Количество посещений". Данные должны быть отсортированы в убывающем порядке количества посещений.
Под таблицей должна располагаться кнопка "Экспорт в CVS", по нажатию на которую должен скачиваться файл с содержимым отчёта в формате CSV.
Аналогичным образом нужно реализовать формирования отчёта по пользователям. Только в данном случае в таблице будут колонки "№", "Пользователь" (ФИО или "Неаутентифицированный пользователь"), "Количество посещений".