В контроллере или модели проверять права доступа? Имеем роутер и структуру сайта вида url/controller/action К адресу вида url / user / add (добавить юзера) должны иметь доступ все К адресу вида url / user / 11 (смотреть юзера) только сам юзер К адресу вида url / user / del (удалить юзера) только администратор сайта Если это не фреймворк где реализованы RBAC и прочие фишки а самописная система - где корректнее проверять права доступа к этой странице? Тут есть 2 уровня проверки - это гость / юзер (видно по сессии), а если юзер то надо в БД сходить что бы узнать его права, значит это должна делать модель (контроллер не должен ходить в БД)? Привлекает ещё концепция middleware из laravel где что-то можно проверить ещё до того как определён нужный контроллер, но тут не понятно где сохранить результаты проверки запроса посредником, передавать во все создаваемые объекты дальше явно, или класть в сессию?
В самописной системе, где используется структура URL вида url/controller/action, корректнее проверять права доступа к страницам в контроллере.
При доступе к странице нужно сначала проверить статус пользователя (гость, юзер и т.д.) и только потом, если это необходимо, проводить дополнительную проверку на права доступа к конкретному действию.
Модель должна использоваться для работы с данными и не должна проводить проверку прав доступа. Например, она может вернуть информацию о пользователе (его права), но сама не должна проводить проверку на возможность доступа к определенной странице.
Концепция middleware из Laravel также может быть полезной для реализации проверки прав доступа. Middleware можно использовать для предварительной проверки и фильтрации запросов перед тем, как они попадут в контроллеры. Результаты проверки посредником можно сохранить в сессии или передавать объектам дальше явно, в зависимости от требований вашей системы.
В целом, важно разделить функциональность модели (работа с данными) и контроллера (обработка запросов и проверка прав доступа), чтобы обеспечить четкую структуру и легкость поддержки вашей системы.
В самописной системе, где используется структура URL вида url/controller/action, корректнее проверять права доступа к страницам в контроллере.
При доступе к странице нужно сначала проверить статус пользователя (гость, юзер и т.д.) и только потом, если это необходимо, проводить дополнительную проверку на права доступа к конкретному действию.
Модель должна использоваться для работы с данными и не должна проводить проверку прав доступа. Например, она может вернуть информацию о пользователе (его права), но сама не должна проводить проверку на возможность доступа к определенной странице.
Концепция middleware из Laravel также может быть полезной для реализации проверки прав доступа. Middleware можно использовать для предварительной проверки и фильтрации запросов перед тем, как они попадут в контроллеры. Результаты проверки посредником можно сохранить в сессии или передавать объектам дальше явно, в зависимости от требований вашей системы.
В целом, важно разделить функциональность модели (работа с данными) и контроллера (обработка запросов и проверка прав доступа), чтобы обеспечить четкую структуру и легкость поддержки вашей системы.