我正在尝试为我的Rails 4应用程序规划一个身份验证和授权系统。
这是我正在计划的结构:
Authentication plan for rails application
(*抱歉,由于我的新声誉,我无法插入图片)
我需要三种不同的授权级别(或模型,我不确定);学生,编辑和管理员。
每个都与不同的模型相关联。例如,学生将与个人资料(学生has_one个人资料)相关联,但管理员将与“个人资料”和“administrative_profile”相关联。
我还需要一个灵活的解决方案来定义管理员详细和层次结构的管理员角色。我的意思是,所有管理员都没有相同的权利,有些人将负责机构,有些人会负责城市等。这种结构的层次结构是;
CityAdmin > InstitutionAdmin > DepartmentAdmin
我不确定如何构建这种结构。 构建这样的身份验证结构的最佳方法是什么?现在,我已经安装了“设计”gem并且已经拥有“用户”模型。我的下一步应该是什么?
答案 0 :(得分:0)
如何关注RBAC pattern(基于角色的访问控制)?此模式将用户与他们在系统中扮演的角色分开。权限附加到角色,并根据需要授权用户。
这不是一个终极解决方案,但它似乎足够灵活,可满足您所描述的要求。
除了/替换Devise之外,一些宝石可以提供帮助,例如CanCan或更多现代替代品。
请注意,身份验证和授权之间存在差异。
答案 1 :(得分:0)
查看cancan / rolify
另一个很好的资源是在一个有效的入门应用中看到这些。去结束Rails Composer站点并使用Rails 3.2创建一个新的应用程序。有一些很好的预制初学者应用程序种子3.2可以作为参考。
或者您可以按照以下步骤操作:
rails new myapp -m https://raw.github.com/RailsApps/rails-composer/master/composer.rb
创建此应用时,如果您使用Rails 3.2,您将看到以下选项:
question Install an example application for Rails 3.2?
1) I want to build my own application
2) membership/subscription/saas
3) rails-prelaunch-signup
4) rails3-bootstrap-devise-cancan
5) rails3-devise-rspec-cucumber
6) rails3-mongoid-devise
7) rails3-mongoid-omniauth
8) rails3-subdomains
你可以选择#4,你将拥有一个预先构建的启动应用程序,其中包含设计/ cancan / rolify所有设置,以便您可以查看一个有效的示例。