Привет всем! Завело меня в тупик! Прошу помощи!
Не знаю как разграничить права доступа для пользователей в разных организациях!
Ситуация следующая. Есть множество организаций и пользователей, пользователь может принадлежат нескольким организациям, у пользователя может быть много организаций
User.rb
class User < ActiveRecord::Base
has_many :companies, through: :users_companies
has_many :users_companies
end
Company.rb
class Company < ActiveRecord::Base
has_many :users_companies
has_many :users, through: :users_companies
end
Создал модель Role
Role.rb
class Role < ActiveRecord::Base
has_many :users_roles
has_many :users, through: :users_roles
end
с помощью gem'a cancancan распределил права(думаю неправильно решение под такую задачу), но никак не хватает мозгов как правильно проверять компанию. Добавил в join table users_roles колонку company_id но при action update UsersController колонка company_id становиться Null
Роли следующие пользователь может быть администратором, секретарем и директором
Один и тот же пользователь может быть в одной организации администратором а в другой секретарем.
Вся соль в том что если Вася Пупкин является в компании Рога и Копыта администратором то и в других компаниях он является администратором, Гугл по таким вопросам молчит, подскажите как правильно организовать базу данных с данной задачей?