Mehrere before_filter Aussagen für correct_user und admin

Ich habe eine Ressource der Gruppe, die ich ' m, die versuchen, mit der richtigen Berechtigungen.

Die Genehmigung Logik, die ich bin versucht zu implementieren, ist dies:

  1. Nur Mitglieder der Gruppe sollten in der Lage sein, um Ihre Gruppe.
  2. Ein admin kann anzeigen alle - Gruppe, sowie andere Maßnahmen zu treffen.

Ich bin versucht, dies zu tun mit den folgenden before_filter Aussagen in der Gruppe controller:

before_filter :signed_in_user
before_filter :correct_user, only: :show
before_filter :admin_user, only: [:show, :index, :edit, :update, :destroy]

Correct_user funktioniert, wie ich überprüft haben, dass nur Mitglieder der Gruppe können Ihre Gruppe. Jedoch, was ich will, geschehen wird für den admin: - show-Klausel außer Kraft setzen, so dass ein admin kann anzeigen einer Gruppe. Derzeit ist das nicht arbeiten. Ich vermute ich habe etwas falsch hier mit meinem filter bestellen und Optionen.

Kann mir jemand sagen, wo ich falsch gegangen?

BEARBEITEN

Hinzufügen meine Methode code pro Amar ' s Wunsch:

private

def correct_user
  # User has to be a member to view
  @group = Group.find(params[:id])
  redirect_to(root_path) if @group.members.find_by_member_id(current_user).nil?
end

def admin_user
  redirect_to(root_path) unless current_user.admin?
end
  • Versuchen admin_user vor dem filter oben correct_user oder in show-action make-Bedingung für den admin-Benutzer und andere
  • Dank Amar. Ich habe versucht, den admin_user oben genannten filter correct_user aber das hat nicht zu beheben. Ich könnte die Bedingung in der Aktion, wollen aber sehen, ob es einen Weg, es zu tun mit before_filter.
  • Auf eine weitere Untersuchung mit der Art und Weise, ich habe es geschrieben über dem filter ist, dass der Benutzer werden, sowohl als admin UND ein correct_user, um die Gruppe. Ich will es zu sein, ODER
  • U kann die debug Methode mit debugger oder hebeln Sie bekommen faire Idee, was falsch sein könnte, die Sie tun, Recht oder kann u post code, so kann ich in Sie Graben.
  • Zu schätzen Ihre Hilfe, Amar. Gerade gebucht und die Methode code oben.
  • Ok,also beim admin melden und er wird nicht Mitglied in diesem Fall leitet also für show-Methode können Sie erstellen, die folgende Methode

InformationsquelleAutor pejmanjohn | 2012-04-14
Schreibe einen Kommentar