Mam zasób grupy, który próbuję skonfigurować z odpowiednimi uprawnieniami.Wiele instrukcji before_filter dla poprawnego użytkownika i administratora
Logika upoważnienie Próbuję zaimplementować to:
- Tylko członkowie grupy powinni być w stanie wyświetlić ich grupy.
- Administrator może wyświetlić dowolną grupę, a także podjąć inne działania.
ja próbuje zrobić to z następujących before_filter sprawozdania w kontrolerze Grupa:
before_filter :signed_in_user
before_filter :correct_user, only: :show
before_filter :admin_user, only: [:show, :index, :edit, :update, :destroy]
Correct_user działa jak już zweryfikowane, że tylko członkowie grupy mogą przeglądać ich grupy. Jednak chcę, aby klauzula admin: show nadpisała to, aby administrator mógł wyświetlać dowolną grupę. Obecnie to nie działa. Zgaduję, że mam tu coś nie tak z moją kolejnością filtrowania i opcjami.
Czy ktoś może mi powiedzieć, gdzie się zepsułem?
EDIT
Dodanie mój kod metody na żądanie Amar za:
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
Try użytkownik_admin przed filtrem powyżej correct_user lub w show działania sprawiają warunkowy dla użytkownika admin i innych – Amar
Dzięki Amar. Próbowałem umieścić filtr admin_user powyżej proper_user, ale to nie naprawiło. Mogę umieścić warunek w akcji, ale chcę sprawdzić, czy istnieje sposób na zrobienie tego za pomocą before_filter. – pejmanjohn
Po dalszej kontroli w sposób, w jaki mam to napisane powyżej, filtr wymaga od użytkownika zarówno administratora, jak i poprawnego użytkownika, aby móc przeglądać grupę. Chcę, żeby to było OR – pejmanjohn