Devise 사용자 및 관리자를위한 별도의 모델이 있습니다. 나는 Basecamp 스타일 서브 도메인도 사용하고있다. 사용자 또는 관리자로 인증 할 수 있어야하는 몇 가지 컨트롤러와 작업을 제외하고는 모든 것이 잘 작동합니다.사용자 또는 관리자 모델 및 Basecamp 스타일 하위 도메인으로 로그인하십시오.
현재 authenticate_user가 있습니다! 내 application_controller.rb에서 설정하고 skip_before_filter를 사용하여 컨트롤러 만 액세스 할 수있는 컨트롤러 및 작업을 건너 뜁니다.
불행히도 사용자 나 관리자가 액세스 할 수있는 컨트롤러와 작업이 필요하기 때문에 불행히도 각 컨트롤러에 인증 요구 사항을 지정할 수는 없습니다.
저는 몇 가지 시도를 해 보았습니다. 그것은 authenticate_user 이동하면 보인다! 및 authenticate_admin! 일종의 하위 도메인 감지 로직으로 처리하지 못합니다. 기본적으로 :
current_subdomain = request.subdomains.first
if current_subdomain == 'admin'
authenticate_admin!
else
authenticate_user!
end
내가 한 시점에서,이 인증을 시도 얻을 수 있었다지만 리디렉션 루프 (와 나를 위해 첫 번째 결과 인증을 필요로에서 세션 컨트롤러를 제외시켰다 실패 된 몇 가지 이유 루비!).
admin 상태를 나타내는 사용자에게 필드를 추가 할 수 있다는 것을 알았지 만, 응용 프로그램은 몇 가지 컨트롤러와 작업을 제외하고는 사용자와 관리자간에 더 큰 권한 분리가 필요합니다.
- 루비 1.9.2
- 레일 3.0.3
- 고안 아마 1.1.3
나는 또한 그렇게 할 것입니다. – Shane