Я пишу веб-приложение с некоторыми требованиями ACL: пользователь может вносить изменения в некоторые элементы, некоторые элементы могут редактироваться несколькими пользователями, администратор может редактировать что угодно, а менеджер может редактировать все в своей организации и т. Д.
Я использую Play!В соответствии с каркасом, и, судя по виду модуля Secure
, кажется, что место, где можно поставить проблемы авторизации, находится в контроллерах.Тем не менее, мне кажется, что вопросы авторизации являются частью бизнес-логики и, следовательно, должны быть в модели.Кроме того, я начинаю видеть дублированную логику в контроллерах, которую мне нужно реорганизовать.
С другой стороны, добавление авторизации в модель означает, что мне потребуется какой-то способ получения текущегопользователь из модели, что не кажется правильным.В качестве альтернативы, я мог бы добавить параметр current_user для каждого метода модели, но это кажется еще хуже.
Так что же является обычной практикой?Могу ли я добавить код авторизации в модель или оставить его в контроллере?