2010-11-19 2 views
0

Я хочу реализовать контроль доступа на основе уровня в моем приложении ruby ​​on rails. Как и у пользователя на более низком уровне, он не сможет получить доступ к данным своего родителя. Пример Контроль доступа на основе уровня в рубине на рельсах

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

В структуре выше говорят, каждый пользователь может создать запись. Но записи будут просматриваться в соответствии с иерархией. Как главный администратор сможет получить доступ ко всем записям, Sub Admin1 может получить доступ к записям, созданным самим собой, SA1_user1 и sa1_user2 и т. Д.

Есть ли хорошая вставка для реализации этого в рубине на рельсах?

Thanks, PraWin.

ответ

1

Я не знаю плагина, но писать было бы не так уж сложно. Вам просто нужно иметь owner_id для каждой созданной записи, к которой вы хотите получить доступ, и у каждого пользователя будет родительский пользователь, а затем вы напишите модельный метод для user.is_ancestor_of? record.owner для проверки в любое время, когда пользователь пытается получить доступ к записи.

+0

Да, это у меня в голове. Есть ли какой-либо метод, который вернет всех предков для узла, а также всех дочерних элементов для узла. – Pravin

+0

ничего подобного не существует, о котором я знаю, вам, скорее всего, придется писать его с нуля. надеюсь, у кого-то еще будет больше информации. – re5et

+0

есть хороший плагин * ancestry *, который я использовал для реализации этого. – Pravin