Добрый день.
Возник такой вопрос, есть сайт. На нём пользователи. Есть поле с датой в модели пользователя. Необходимо чтобы пользователь имел доступ ко всем возможностям сайта, пока эта дата не отличатеся от текущей на 10 дней. Как только разница между ними превышает 10 дней, надо закрыть ему доступ к большей части возможностей, к выполнению тех или иных действий и т.п.
Как это сделать правильно, не разбрасывая это условие по всему коду?
Я пока смог придумать только подход через создание декоратора, который закроет доступ пользователя ко всем функциям сайта, которые не должны быть ему доступны.
Но тогда, правда, всё равно придётся прописывать дополнительно это условие в шаблонах, так как есть страницы. которые этот пользователь может посмотреть (они доступны даже без авторизации), но ряд кнопок для него должен быть скрыт. Потому что я могу закрыть для него декоратором функцию, которая обрабатывает нажатие, но это будет не очень красиво что кнопки есть, просто не работают. Лучше чтобы их вообще небыло.
Может кто предложит более хорошее решение этой задачи?