Frage

Ich habe ein Benutzer-Modell, dessen Zugang kontrolliert durch ACL9.

in UsersController:

#ACL9 related stuff
before_filter :load_user, :only => [:show]
  access_control do
    allow :owner, :of => :user, :to => [:show]
  end

def load_user
  user = User.find(params[:id])
end

in ApplicationController:

rescue_from 'Acl9::AccessDenied', :with => :access_denied

def access_denied
  authenticate_user! # a method from Devise
end

Es ist kein Problem in URL für Anmeldeseite http://localhost:3000/users/sign_in zu geben, aber es ist ein Problem, wenn ich zum Beispiel zuerst in der Benutzerseite eingeben, was soll mich erwarten Anmeldeseite umgeleitet werden automatisch durch die Logik oben .

http://localhost:3000/users/1 => unendliche Umleitung Hölle. Es wird versucht zu users/1 Umleitung wieder statt auf users/sign_in lenken.

Hat jemand eine Meinung haben, was könnte schief gehen werden?

War es hilfreich?

Lösung

Ich glaube, Sie sollten nicht Acl9 in Devise Benutzer-Controller verwenden. Da Sie nicht authentifiziert sind, haben Sie keine Rechte, und Sie werden authentifizieren nicht: D. Möglicherweise möchten Benutzer verbieten, zu löschen, so dass es sein sollte:

access_control :only => [:destroy] do
      allow :admin
end

Für Userscontroller sollten Sie Ihre access_control überschreiben, wenn Sie es verlassen wollen, wie in Anwendungssteuerung ist.

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