Ruby on Rails将分层用户与身份验证和授权相结合

时间:2011-05-17 13:38:11

标签: ruby-on-rails ruby-on-rails-3 authentication authorization

我可以通过身份验证/授权设计获得一些建议吗?

这是一个汽车车库应用程序,允许客户监控他们的汽车状态。

以下是我的要求: 1.我需要4个用户的层次结构:

  A. Superuser (me)
  B. Garage owner.
  C. Mechanic.
  D. Customer.

超级用户可以创建/编辑/删除用户A,B,C和D. Garage所有者可以创建/编辑/删除用户C和D.

  1. 可能有多个车库拥有者拥有相同的机械师和客户。

  2. 车库所有者和机械师的身份验证是一个帐号(应用程序发布的)和密码。

  3. 客户身份验证基于他们的电子邮件地址和密码。

  4. 所有类型用户的单一登录表单。

  5. 客户只能看到他们的汽车状态。机械师或车库所有者可以访问与车库相关的所有汽车。并且超级用户可以访问数据库中的所有汽车。

  6. 我选择的插件将是authlogic和cancan,但我似乎无法找到一个优雅的设计,代表其他用户对某些用户的所有权,例如,对于特定的车库所有者,获取所有用户机械师或客户。

    我很感激任何有关模拟这种模型的最佳方法的想法。

    由于

1 个答案:

答案 0 :(得分:1)

我认为您希望User模型具有garage_idrole属性。我希望您可以使用after_save上的Userlogin属性设置为emailaccount_number。您可以在CanCan Ability课程中完成剩下的工作。显然,超级用户将拥有NULL garage_id