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