2016-11-27 2 views
0

나는 약간의 인증 및 인증과 혼동스러워하고 있습니다.여러 사용자가 인증 및 승인

먼저 내 프로젝트에 대해 이야기해야합니다. 그것은 두 가지 주요 모델 : 사용자 및 찬성을 갖습니다. 사용자는 서비스를 요청하는 사람들입니다. 찬성이란 서비스를 제공하는 사람들입니다. 프로는 매우 다른 작업을 할 수 있으므로 프로젝트에 저장된 데이터의 유형이 매우 다릅니다. 저는 (사진 작가, 웨딩 플래너 ..)이 보유한 여러 유형의 직업에 대해 서로 다른 모델을 계획하고 있습니다. 그 모델들은 관계와 "다른"자신의 다른 모델을 가질 것입니다 (이미지는 클립으로 추가되고 웹 사이트 링크 ...).

가 나는 인증 및 인증 중 모두에 대해 보석을 사용할 필요가 생각 지금

을 내 질문 (나는 가 고안염두에두고 학자이) :

  • 나는 것 모든 사용자 및 프로가 동일한 양식을 통해 로그인하도록하십시오. 이것은 매우 Devise 일이라고 생각합니다. Devise에 대해 조금 읽은 후에도 각 모델에 대한 로그인이있는 것으로 보입니다. 이 스레드는 Devise "그룹"을 언급합니다
    https://gorails.com/forum/devise-with-multiple-user-models-with-single-login-form 단일 양식 로그인의 문제를 확실히 해결할 수 있습니까?

  • 각 프로 서미러 서브 모델에 모든 유형의 사용자 또는 게스트에게 자신의 레코드 미리보기를 보여주고 싶습니다. 그러나 Pro에 로그인하면 더 많은 정보 (변경 될 수있는 모든 개인 데이터, 사용자로부터의 가격 요청 등)가있는 확장 프로필보기에 액세스 할 수 있습니다. 여기가 평범한 직업인지 확인할 수 있니?

답변

1

전문가는 두 번째 요점을 달성하기위한 완벽한 선택입니다. 계정을 소유 한 Pro만이 특정 작업 (예 : 편집/업데이트)을 수행하도록 제한 할 수 있습니다. 당신은 모두 사용자를위한 단 하나의 로그인 형태를 갖는 설정하는 이유를 설명 할 수 고안를 사용하여 여러 사용자 모델 인증에 대한 질문의 관점에서

def edit? 
    update? 
end 

def update? 
    record.pro == user 
end 

다음 ProPolicy에서 해당 작업에 대한 코드는 같을까요? 사용자가 일반 사용자 또는 프로인지 선택할 수있는 로그인 버튼을 드롭 다운 할 수 있습니다. 또는 사용하려는 로그인 유형을 선택하는 양식에서 확인란/선택을 할 수도 있습니다.

그렇다면 데이터베이스를 검사하여 Pro 또는 User 테이블에 로그인이 있는지 확인해야합니다. 그러나 동일한 이메일을 사용하여 Pro 및 User 계정을 모두 가질 수 없다는 것을 의미합니다.

+0

맞습니다. Pro가 User 일 수도 있다는 사실조차 생각조차하지 않았습니다. 나는 둘을 분리하고 찬성을위한 특별 환영 페이지를 만드는 것이 분명 바람직하다고 생각한다. 그리고 지금은 Devise에 대해 설치하고 배웠습니다. 나는 Pundit으로 뛰어들 수 있습니다! Tks – Maxence