декларативное разрешение и has_and_belongs_to_many - PullRequest
1 голос
/ 16 февраля 2011

У меня небольшая проблема с декларативной авторизацией.У меня есть Пользователь и Ролевая модель с ассоциацией has_and_belongs_to_many.

Я создал Роль с именем: moderator в моем authorization_rules.rb

Возможно ли, что Пользователь с Ролевым Модератором получает толькоПользователи, которым назначена роль модератора ??-> User.with_permissions_to (: index)

Я думал, что это будет возможно так:

role :moderator do
  has_permission_on :users, :to => :index do
    if_attribute :roles => contains { ????? }
  end
end

Я также создал named_scope в своей пользовательской модели, потому что я думал, что это поможет...

class User
  has_and_belongs_to_many :roles
  named_scope :by_role, lambda { |role|
    {
      :include => :roles,
      :conditions => {"roles.name" => role}
    }
  }
end

Кто-нибудь знает, возможно ли это сделать с декларативным_авторизацией?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 16 февраля 2011

Я делал нечто подобное в одном из моих проектов, но в то время находил, что dec_auth действительно сбивает с толку.Я думаю, это то, что вам нужно сделать:

authorization_rules.rb:

role :moderator do
  has_permission_on :users, :to => :index
end

Модель пользователя:

class User < ActiveRecord::Base
  using_access_control
end

Контроллер:

@users = User.with_permissions_to(:index)

Дайте мне знать, если это не сработает.

...