仅适用于管理仪表板的清除验证

时间:2016-02-17 16:57:16

标签: ruby-on-rails authentication clearance

我有一个可公开使用的rails应用程序,但有一个只有注册用户才能访问的管理仪表板。

我正在使用Thoughtbot Administrate作为仪表板部分,我正在尝试使用Clearance实现仪表板身份验证。

我的应用没有对公开部分进行任何身份验证,因此我将session_set_cookie_params()行从include Clearance::Controller移至ApplicationController,并将登录/注销按钮放入导航栏中然而,当我点击登录按钮时,应用程序会向我显示我的应用程序的身份验证表单,而不是仪表板部分(我可以告诉因为所使用的样式两者都不同),所以我的问题是,是否存在一种只为管理部分安装许可的方法,比如只安装管理命名空间?

Admin::ApplicationController的清除部分是:

rake routes

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

听起来唯一的问题是Clearance控制器正在使用您的应用程序布局而不是您的管理布局。您可以覆盖它,它是documented in the README

Clearance::PasswordsController.layout 'my_passwords_layout'
Clearance::SessionsController.layout 'my_sessions_layout'
Clearance::UsersController.layout 'my_admin_layout'

无论你想要什么。如果你想影响所有的清关视图,我认为你可以这样做:

Clearance::BaseController.layout 'my_admin_layout'