Ich habe Schwierigkeiten, die Dokumentation für die deklarative Autorisierung und verschachtelte if_attributes zu verstehen.Deklarative Autorisierung geschachtelt if_attribute
Modelle:
class Company < ActiveRecord::Base
has_many :users, :through => :division
end
class Division < ActiveRecord::Base
belongs_to :company
has_many :users
end
class User < ActiveRecord::Base
belongs_to :post
end
Meine Regel:
role :company_admin do
includes :company_admin
has_permission_on :companies, :to => [:index, :show, :edit, :update] do
if_attribute :id => is { user.division.company.id } # This is the problem....
end
In meiner Hierarchie, ich habe eine company_admin Rolle definiert, die erlaubt sein sollte, seine eigene Firma und alle Abteilungen und Benutzer zu bearbeiten. Es gibt eine andere Rolle über dem Firmenadministrator, die die Möglichkeit hat, & Firmen und alle Rollen unten zu bearbeiten.
Wo ich aufgelegt zu sein scheint, ist in der Regel oben aufgeführt (Ich weiß, dass das nicht korrekt ist, es ist nur Füllstoff für ein Beispiel). Ich muss feststellen, dass der aktuelle Benutzer nur seine eigene Firma bearbeiten kann, keine andere. Dies scheint ein verschachteltes if_attribute zu sein, aber ich kann die Beispiele verschachtelter if_attributes in der Dokumentation nicht verstehen.
Vielen Dank im Voraus für jede Hilfe!