【发布时间】:2011-03-05 03:28:15
【问题描述】:
请考虑这种情况:一个具有 4 个访问级别的 Web 应用程序:管理员 > 经理 > 代表 > 客户 > 无角色(公共访问页面)
使用我当前的应用设置,我可以通过 2 种方式允许访问:
我可以编写代码,假定角色优先,即如果用户是经理 - 应用程序将自动假定他/她有权访问客户和代表可以访问的区域,但不能访问管理员。
我可以在表格中单独分配每个角色。例如,一个用户将有 3 个角色分配给他们。所以应用程序不会承担角色优先/继承。我可以让管理员为用户分配角色,或者修改一些代码,如果授予更高的访问级别,将自动为用户分配额外的角色。
从可维护性的角度来看,这两种方法中哪一种更好?
附言
我认为这并不重要,但我正在使用带有 CanCan 和 Devise 的 Rails 3。 我对角色和用户之间关系的设置如下:
角色 (HABTM) 用户
【问题讨论】:
标签: ruby-on-rails security design-patterns cancan