Как позвонить, прежде чем войти в Devise? - PullRequest
0 голосов
/ 02 июня 2011

Я бы хотел отключить авторизацию пользователя, когда дата создания учетной записи - 2010 год.

Как я могу использовать обратные вызовы для этой задачи и как я могу использовать это с Devise?

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

Я думаю, что ваш вопрос состоит из 2 частей:

  1. Исходя из некоторых критериев (например, даты создания учетной записи), вы хотите разрешить пользователям выполнять определенные действия

  2. Вы хотите использовать Devise для аутентификации

Обратите внимание, что существует разница между аутентификацией (вы являетесь тем, кем вы себя называете) и авторизацией (вам разрешено делать то, чтовы запрашиваете), и они обычно реализуются с использованием другого программного обеспечения.

Например, вы можете использовать Devise для аутентификации и CanCan для управления авторизацией (railscast на CanCan: http://asciicasts.com/episodes/192-authorization-with-cancan).

ИспользованиеCanCan, вы бы просто позволяли пользователям выполнять действия на основе атрибута created_at для своей учетной записи, а в противном случае вызывать метод authorize! Devise.

0 голосов
/ 02 июня 2011

Используете ли вы стратегию lockable в Devise?

Если это так, в контроллере, который перенаправляется после входа в систему, вы можете добавить before_filter, который выполняет что-то вроде этого:

current_user.lock_access! if current_user && current_user.created_at.year == "2010"

И вам также необходимо вручную вывести пользователя из системы, возможно, что-то вроде этого:

sign_out current_user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...