Authlogic: гарантия того, что пользователь не сможет войти дважды - PullRequest
1 голос
/ 23 июня 2009

Есть ли простой способ в Authlogic (не нашел ничего, просматривая документы ) гарантировать, что UserSession не может быть создан, если у пользователя уже есть объект UserSession?

Другими словами: я хочу убедиться, что пользователь не может войти в систему дважды с одинаковыми учетными данными.

ОБНОВЛЕНИЕ: проверьте комментарии к ответу вора, чтобы найти решение этой проблемы.

Ответы [ 2 ]

3 голосов
/ 23 июня 2009

в вашем контроллере пользовательских сессий:

    before_filter :require_no_user, :only => [:new, :create]

в вашем контроллере приложения:

def require_no_user
  if current_user
    store_location
    flash[:notice] = "You must be logged out to access this page"
    redirect_to account_url
    return false
  end
end
0 голосов
/ 23 июня 2009

На мой взгляд, более чистый подход заключается в использовании обратных вызовов в классе UserSession. Например, вы можете определить обратный вызов before_create и пометить модель как недействительную в соответствующем случае. Хотя сам не пробовал. Вот документы для модуля Callbacks .

...