내 응용 프로그램에서 인증에 Devise를 사용하고 있습니다.Devise - 특정 사용자의 로그인을 어떻게 금지합니까?
특정 사용자의 로그인을 금지하려면 어떻게해야합니까? 사용자를 일종의 종류로 비활성화 하시겠습니까?
내 응용 프로그램에서 인증에 Devise를 사용하고 있습니다.Devise - 특정 사용자의 로그인을 어떻게 금지합니까?
특정 사용자의 로그인을 금지하려면 어떻게해야합니까? 사용자를 일종의 종류로 비활성화 하시겠습니까?
에 관심이있을 수 있습니다 같은데 :
User
모델 is_active
라는 열을 만듭니다.
그런 다음 User
모델에 아래의 코드를 추가합니다
class User < ActiveRecord::Base
#this method is called by devise to check for "active" state of the model
def active_for_authentication?
#remember to call the super
#then put our own check to determine "active" state using
#our own "is_active" column
super and self.is_active?
end
end
UPDATE 매트 허긴 스 노트로, 방법은 지금 active_for_authentication?
(Documentation)
감사합니다! 그것이 내가 필요한 것입니다. –
'active_for_authentication?'대신 'active?'로 이름이 바뀐 것 같습니다. –
감사합니다. –
인증이 아니라 인증을 원합니다. Devise는 단지 authetication을 수행합니다.
즉, devise는 사용자가 자신이 말하는 사람이라는 것을 알려줍니다.
사이트 사용을 금지하려면 다른 것이 필요합니다.
인증은 인기있는 주제와 함께 당신을 도울 수있는 보석의 전체 목록이있다 :
http://ruby-toolbox.com/categories/rails_authorization.html
이 골라 봐가.
차이점을 알고 있습니다. 것은 특정 컨트롤러에 액세스하지 않고 사용자가 로그인하는 것을 금지하려고합니다. –
당신이 이런 식으로 작업을 수행 http://railscasts.com/episodes/192-authorization-with-cancan
질문에 대한 답변이 아닙니다. 대부분의 사람들은 인증과 인증의 차이점을 알고 있습니다. 질문은 사용자가 로그인 할 수 없도록 만드는 방법이었습니다. – isaacsloan
라고
에 열 추가 User
모델 : allowed_to_log_in
.
그런 /app/models/user.rb
이 추가 :
def active_for_authentication?
super and self.allowed_to_log_in?
end
을 사용자 정의 메시지를 사용자에게 통보하고 싶다면 여러분이이를 추가 할 수 있습니다
def inactive_message
"You are not allowed to log in."
end
나는 그것이 매우 중요하다 생각하기 때문에 Devise의 표준 메시지 :
"계정이 아직 활성화되지 않았습니다." 사용자와 진짜 이유에 대해 혼란
는
당신이 로그인에서 그들을 "금지"한 것입니다
이 유효한 질문 및 재개되어야한다 -. 영업 이익은 내가 특정 사용자를 금지 할 방법 "을 요구하고있다 로그인 "에서 [devise] (https://github.com/plataformatec/devise)를 사용하십시오. – Zabba