1

请考虑这种情况:具有 4 个访问级别的 Web 应用程序:管理员 > 经理 > 代表 > 客户 > 无角色(公共访问页面)

使用我当前的应用程序设置,我可以通过 2 种方式允许访问:

  1. 我可以编写代码,假设角色优先,即如果用户是经理 - 应用程序将自动假设他/她有权访问客户和代表可以访问的区域,但不是管理员。

  2. 我可以在表格中单独分配每个角色。例如,一个用户将有 3 个角色分配给他们。所以应用程序不会承担角色优先/继承。我可以让管理员为用户分配角色,或者修改一些代码,如果授予更高的访问级别,这些代码将自动为用户分配额外的角色。

从可维护性的角度来看,这两种方法中哪一种更好?

附言

我认为这并不重要,但我将 Rails 3 与 CanCan & Devise 一起使用。我对角色和用户之间关系的设置如下:

角色 <=> (HABTM) <=> 用户

4

1 回答 1

2

我有类似的角色要求,我选择了方法 1。很自然地假设您的角色层次越高,您拥有的访问权限就越多。因此,说经理可以访问代表拥有的资源是可以的。

此外,由于您使用的是 CanCan,因此非常容易设置跌落。从初始化块顶部具有最少访问权限的角色开始,然后向下工作。

于 2011-03-04T19:28:15.673 回答