В каком слое (Model, View, Controller) MVC должна обрабатываться логика разрешения?Как часть того, какие уровни должны быть применены в MVC?
Позвольте мне пояснить это немного. Очевидно, что пользовательский интерфейс (View and Controller) должен иметь доступ к разрешениям для отображения/скрытия компонентов и для обработки сценария отказа в доступе. Также кажется очевидным, что разрешения должны сохраняться в базе данных с помощью слоя модели.
Но как насчет «сложных» правил разрешения?
В системе wiki/CMS, которую я разрабатываю, каждый пользователь имеет набор разрешений для каждой страницы (просмотр, редактирование, переименование и т. Д.). Для существующих страниц эти разрешения извлекаются из базы данных. Для новой страницы предполагается, что пользователь имеет все возможные разрешения (поскольку они создают/редактируют его).
Другим примером может быть список страниц:
Текущий пользователь должен иметь возможность видеть только страницы, на которые у них есть разрешение на просмотр в списке страниц.
Должен ли контроллер справиться с этой логикой? Или должен ли контроллер отвечать за вызов метода GetPermissions() (или GetPageList), и вся логика его заполнения обрабатывается в модели?