Używam funkcji tworzenia i tworzenia pola użytkownika o nazwie: active, które ma wartość true lub false. Muszę ręcznie uczynić użytkownika aktywnym (true), zanim użytkownik będzie mógł się zalogować. Przynajmniej takie jest działanie. Próbowałem to ...Sprawdź, czy użytkownik jest aktywny przed zezwoleniem użytkownikowi na logowanie za pomocą narzędzia devise (szyn)
class SessionsController < Devise::SessionsController
# POST /resource/sign_in
def create
"resource/signin CREATE"
self.resource = warden.authenticate!(auth_options)
unless resource.active?
sign_out
redirect_to :sorry_not_active_url
return
end
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
Jednak to nie złapać wszystkie miejsca, w których użytkownik może zalogować się, na przykład, gdy użytkownik zmieni swoje hasło, strona automatycznie rejestruje je automatycznie po. Jeśli jednak użytkownik nie jest aktywny, nie chcę, aby zezwolono mu na logowanie, ale powinien zostać przekierowany do strony sorry_not_active_url.
Jaki byłby najlepszy sposób uniemożliwienia użytkownikowi zalogowania się, jeśli użytkownik nie jest aktywny?
Dziękuję.
To świetnie! czy istnieje sposób sprawdzenia różnych stanów, np. aktywnych, nieaktywnych, oczekujących, odrzuconych przez utworzenie pola z 4 różnymi wartościami i dostarczenia innego komunikatu dla każdego stanu? – user2012677
po zastanowieniu się, zakładam, że mogę uczynić def inactive_message odwołanie pola, a pole może mieć niestandardową wiadomość na użytkownika. Czy to wydaje się być poprawne? – user2012677
Wygląda na to, że zadziała – house9