我可以通过身份验证/授权设计获得一些建议吗?
这是一个汽车车库应用程序,允许客户监控他们的汽车状态。
以下是我的要求: 1.我需要4个用户的层次结构:
A. Superuser (me)
B. Garage owner.
C. Mechanic.
D. Customer.
超级用户可以创建/编辑/删除用户A,B,C和D. Garage所有者可以创建/编辑/删除用户C和D.
可能有多个车库拥有者拥有相同的机械师和客户。
车库所有者和机械师的身份验证是一个帐号(应用程序发布的)和密码。
客户身份验证基于他们的电子邮件地址和密码。
所有类型用户的单一登录表单。
客户只能看到他们的汽车状态。机械师或车库所有者可以访问与车库相关的所有汽车。并且超级用户可以访问数据库中的所有汽车。
我选择的插件将是authlogic和cancan,但我似乎无法找到一个优雅的设计,代表其他用户对某些用户的所有权,例如,对于特定的车库所有者,获取所有用户机械师或客户。
我很感激任何有关模拟这种模型的最佳方法的想法。
由于
答案 0 :(得分:1)
我认为您希望User
模型具有garage_id
和role
属性。我希望您可以使用after_save
上的User
将login
属性设置为email
或account_number
。您可以在CanCan Ability
课程中完成剩下的工作。显然,超级用户将拥有NULL
garage_id
。