декларативная_авторизация и пользовательский контекст - PullRequest
2 голосов
/ 18 декабря 2010

Планирую использовать декларативную авторизацию в приложении Rails 3.У меня есть следующие модельные отношения:

class Role < ActiveRecord::Base
  has_many :permissions, :dependent => :destroy
  has_many :users, :through => :permissions, :uniq => true  
end

class Permission < ActiveRecord::Base
  belongs_to :user
  belongs_to :role
  belongs_to :context
end

class User < ActiveRecord::Base
  has_many :permissions, :dependent => :destroy
  has_many :roles, :through => :permissions

  roles.map do |role|
      role.name.underscore.to_sym
  end
end

class Context < ActiveRecord::Base
  has_many :contexts, :dependent => :destroy

end

Идея в том, что я собираюсь сегментировать различные наборы данных в разные контексты.Однако данный пользователь может иметь разные роли для каждого контекста - может быть, администратор в одном контексте и обычный пользователь в другом.Я реализовал current_user и current_context для использования в контроллерах и представлениях.

Я планирую использовать if_attribute для ссылки на правильное разрешение для правого набора данных.Однако вопрос в том, как сделать так, чтобы def role_symbols возвращал только роли, связанные с пользователем в определенном контексте, когда я не могу / не должен ссылаться на current_context в модели (где определен role_symbols).

1 Ответ

1 голос
/ 21 декабря 2010

Было достаточно удачи, чтобы найти ответ здесь:

http://blog.drivingthevortex.nl/2010/01/24/using-declarative_authorization-with-subdomains/

...