LINUX.ORG.RU

[RoR][Нужно] RBAC

 ,


0

1

Пару вопросов по реализации сабжа.

1. Схематически решил вопрос так.

class Account < ActiveRecord::Base
    has_many :memberships
    has_many :projects, :through=>:memberships
...
end


class Membership < ActiveRecord::Base
    belongs_to :account
    belongs_to :project
    has_many   :permissions
...
end


class project < ActiveRecord::Base
    has_many :memberships
    has_many :accounts, :through=>:memberships
...
end
В классе membership есть поле role_id, которое определяет текущую роль .

Есть ли какие хитромудрые идеи ловко перестраивать рутинг на лету взависимости от роли? А то мне что-то не нравится вариант с определеним пермишенов в контроллере?


Ответ на: комментарий от Donnie_Darko

Чтоб в каждом контроллере не тыркать user_had_permission? Прямо в ApplicationControllere выдёргивать вместе с сессией роль пользователя и либо пропускать либо рутить в заглушку. Дело за малым, добавить определение project_id (например для project/:id/<method>). Пока так «заведусь», а как функционал заработает, отрефачу в чтонибудь более реюзабельное с динамичным редактором ролей.

iBliss
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.