У меня есть ресурс группы, который я пытаюсь настроить с помощью соответствующих полномочий.Несколько инструкций before_filter для correct_user и admin
Логика авторизации Я пытаюсь осуществить это:
- Только члены группы должны иметь возможность просматривать свою группу.
- Администратор может просматривать любую группу, а также принимать другие меры.
Я пытаюсь сделать это с помощью следующего before_filter отчетности в контроллере группы:
before_filter :signed_in_user
before_filter :correct_user, only: :show
before_filter :admin_user, only: [:show, :index, :edit, :update, :destroy]
Correct_user работает, как я проверил, что только члены групп могут просматривать свою группу. Тем не менее, я хочу, чтобы оператор admin: show переопределил это, чтобы администратор мог просматривать любую группу. В настоящее время это не работает. Я предполагаю, что у меня что-то не так с моим заказом и настройками фильтра.
Может кто-нибудь сказать мне, где я ошибся?
EDIT
Добавление мой метод кода по запросу Амара:
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 admin_user перед фильтром выше correct_user или в шоу-акции сделать условно для пользователя с правами администратора и другими – Amar
Спасибо Амара. Я попытался установить фильтр admin_user выше correct_user, но это не исправить. Я мог бы поставить условие в действие, но хочу посмотреть, есть ли способ сделать это с before_filter. – pejmanjohn
При последующем осмотре с тем, как я написал это выше, фильтр требует, чтобы пользователь был как администратором, так и администратором AND correct_user, чтобы просмотреть группу. Я хочу, чтобы это было OR – pejmanjohn