При использовании адаптера CanCan в ActiveAdmin 0.6.0. У меня работает ресурс, и авторизация работает. Однако, когда я перехожу на /admin
, корневую страницу ActiveAdmin, она перенаправляет на /admin
и продолжает это навсегда.ActiveAdmin с CanCanAdapter вызывает бесконечное перенаправление на панели управления
ответ
Если пользователь не имеет доступа к странице, ActiveAdmin перенаправляется на Личный кабинет. Если пользователь не имеет доступа к панели управления, это приводит к бесконечному перенаправлению.
Решение должно дать пользователю возможность читать страницу панели мониторинга. Поместите это в объекте способность модели:
can :read, ActiveAdmin::Page, :name => "Dashboard"
Это упоминается в authorization adapter documentation, но бесконечное редирект, кажется, вызвано плохим дизайном в ActiveAdmin. Он не поднимает CanCan :: AccessDenied и не выводит сообщение пользователю. По крайней мере, он должен отображать сообщение в разработке, чтобы помочь устранить эту проблему. Но в настоящее время это не так.
Вы можете использовать опцию конфигурации config.on_unauthorized_access
, как описано here.
# You can also specify a method to be called on unauthorized
# access. This is necessary in order to prevent a redirect
# loop that can happen if a user tries to access a page they
# don't have permissions for
# (see [#2081](https://github.com/gregbell/active_admin/issues/2081)).
config.on_unauthorized_access = :render_403
Метод
access_denied
будет определен вapplication_controller.rb
. Вот один пример, который перенаправляет пользователя со страницы, на которой у них нет прав доступа к ресурсу, к которому у них есть разрешение на доступ (в этом случае организации), а также отображает сообщение об ошибке в браузере:класс ApplicationController < ActionController :: Base
def access_denied(exception) redirect_to admin_organizations_path, :alert => exception.message end
конец
Это правильное решение. К сожалению, Wiki, похоже, больше не упоминает об этом. Он работает в ActiveAdmin 0.6.0 –
Я создал запрос на перенос, чтобы поместить его в active_admin.rb инициализатор. Комментарий +1, если вы считаете, что он должен быть включен в него. Вот ссылка: https://github.com/gregbell/active_admin/pull/2471 –
Я имел ту же ошибку, и у меня есть пользователь администратора с:
if user.admin?
can :manage, :all
end
Я просто забыл добавить правильную роль этому пользователю, поэтому, возможно, у кого-то будет такой же бесконечный цикл переадресации, как у меня с ActiveAdmin и Cancan.
- 1. Bolt.cm login as Guest Editor вызывает бесконечное перенаправление
- 2. Проблема с форматированием в панели управления ActiveAdmin
- 3. Бесконечное перенаправление в AngularJS
- 4. J2ME HttpConnection бесконечное перенаправление
- 5. Facebook приложение бесконечное перенаправление
- 6. htaccess бесконечное перенаправление
- 7. middleware делает бесконечное перенаправление
- 8. Бесконечное перенаправление, вызванное скриптом
- 9. FacebookAuthorizeFilter бесконечное перенаправление
- 10. Как разместить разделы панели управления по вертикали с помощью ActiveAdmin?
- 11. Бесконечное перенаправление при использовании mod_proxy_ajp?
- 12. Что вызывает бесконечное время Loop
- 13. JQuery эк() вызывает бесконечное повторение
- 14. Перенаправление после выписки из ActiveAdmin
- 15. Форма ActiveAdmin на странице показа без панели
- 16. Проблема с кнопками панели управления на панели управления - Xcode
- 17. Бесконечное время цикла и управления-с
- 18. htaccess не загружается 404 страница (бесконечное перенаправление)
- 19. управления Перенаправление с Google Analytics
- 20. nginx бесконечное перенаправление (не ошибка SSL)
- 21. Удалить страницу панели инструментов из ActiveAdmin
- 22. wxpython бесконечное обновление панели вызвать программу свернуть
- 23. Почему CRTP не вызывает бесконечное гнездование?
- 24. Почему мой пользовательский фильтр вызывает бесконечное переваривание?
- 25. Пытается создать кнопку панели навигации на панели управления Панель управления
- 26. Изменение панели управления на панели управления Анимация в setToolbarHidden: анимированная:
- 27. Tkinter/Matplotlib бэкенд конфликт вызывает бесконечное MainLoop
- 28. perl 101 - Итерирующий хеш вызывает бесконечное циклирование
- 29. Панель управления ActiveAdmin частично не отображается?
- 30. с помощью переменных сеанса в канкан с ActiveAdmin
Похоже, вы будете выдавать запрос на извлечение AA. – renegade