Frage

Ich hatte fast die gleichen Probleme wie Victor Martin (Sie können die hier gestellten Fragen sehen).

Ich habe eine deklarative Autorisierung für fast alles, was nicht die Verwendung von Bedingungen beinhaltet. Z.B

has_permission_on :users, :to => [:edit, :update, :destroy] do
if_attribute :user => is { current_user }
end

Gibt es gemeinsame Fallstricke mit deklarativer Genehmigung? Ich verwende Authlogic und ich bin verdächtig, dass die Methode 'Current_User' im Anwendungscontroller die Quelle des Problems sein könnte.

War es hilfreich?

Lösung

Beachten Sie, dass Sie in Ihren Controllern "filter_access_to" verwenden, dass Sie sicherstellen müssen, dass Sie ": Attribute_Check => true" haben. Ohne sie tun die bedingten "IF_ATTRIBUTE" -DEKENATIONEN nichts.

Weitere Details dazu In den deklarativen Autorisierungsdokumenten

Andere Tipps

Sie müssen dies zu Ihrem ApplicationController hinzufügen, wenn Sie es noch nicht getan haben:

before_filter :set_current_user
protected
def set_current_user
  Authorization.current_user = current_user
end

Dann würden Ihre Regeln so aussehen:

has_permission_on :users, :to => [:edit, :update, :destroy] do
  if_attribute :user => is { user }
end

Soweit ich weiß, nennt die deklarative_authorisierung keine Methoden im Crontroller und weiß nicht was current_user bedeutet in Ihrem Beispiel, aber es gibt Ihnen eine Instanz von Authorization.current_user genannt user das Sie in Ihrem verwenden können authorization_rules.rb Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top