轨道上的红宝石中基于级别的访问控制

时间:2010-11-19 06:52:25

标签: ruby-on-rails access-control

我想在我的ruby on rails应用程序中实现基于级别的访问控制。 就像那里,较低级别的用户将无法访问其父级的数据。 实施例

  Main Admin
  |
  |___ Sub Admin1
  |      |
  |      |
  |      |___ SA1_USER1
  |      |
  |      |___ SA1_USER2
  |
  |
  |
  |___ Sub Admin2
         |
         |___ SA2_USER1
         |      |     
         |      |__End_user1
         |      |__End_user2
         |
         |___ SA2_USER2

在上面的结构中说每个用户都可以创建一个记录。但是会根据层次结构查看记录。 像Main Admin一样可以访问所有记录,Sub Admin1可以访问self,SA1_user1和sa1_user2等创建的记录。

是否有任何好的插件可以在轨道上的ruby中实现它?

谢谢, PraWin。

1 个答案:

答案 0 :(得分:1)

我不知道插件,但写自己并不是那么难。你只需要在每个创建的记录上都有一个owner_id,你希望人们访问,每个用户都有一个父用户,然后你会为user.is_ancestor_of编写一个模型方法? record.owner在用户尝试访问记录的任何时候进行检查。