小编Sha*_*ane的帖子

使用用户或管理模型和Basecamp样式子域设计登录

我有Devise用户和管理员的单独模型.我也在使用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
Run Code Online (Sandbox Code Playgroud)

我曾经一度能够让它尝试身份验证,但由于某种原因,除了会话控制器需要身份验证导致重定向循环(对我来说第一次使用Ruby!)之外,它失败了.

我意识到我可以向我的用户添加一个表示管理员状态的字段,但除了一些控制器和操作之外,应用程序需要在用户和管理员之间实现更大的权限分离.

  • Ruby 1.9.2
  • Rails 3.0.3
  • 设计1.1.3

ruby ruby-on-rails devise ruby-on-rails-3

5
推荐指数
2
解决办法
7097
查看次数

标签 统计

devise ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1