Панель инструментов Mount Split gem в Rails_Admin

У меня есть приложение Rails 4.2, которое использует rails_admin для управления действиями CRUD для своих моделей. Это требует current_user.admin? == верно для доступа.

Я только что добавил A/B-тестирование с использованием камня Split. Я хочу использовать ту же авторизацию, чтобы администратор мог только просматривать разделенную панель мониторинга, и подумал, что проще всего создать маршрут внутри панели администратора, чтобы панель мониторинга была доступна по адресу example.com/admin/split.

Я могу смонтировать Split::Dashboard в 'admin/split', но это просто обходит авторизацию администратора.

Вместо этого я хочу добавить кнопку / ссылку с панелью rails_admin, которая перенаправляет на admin / split, где панель монтируется в rails_admin.

Помощь приветствуется.

1 ответ

Решение

Веб-интерфейс split - это приложение sinatra. Он не будет ничего знать о двигателе rails_admin, просто установив его в тот же путь URL. Проверьте документ для интерфейса разделения https://github.com/splitrb/split. и https://steve.dynedge.co.uk/2011/12/09/controlling-access-to-routes-and-rack-apps-in-rails-3-with-devise-and-warden/

Rack:: Auth:: Basic, очевидно, не будет работать для вас, так как это базовая аутентификация http. Таким образом, вы должны использовать второй метод, вставив вам промежуточное ПО для пользовательских запросов. Current_user там не будет доступен, поскольку он добавляется обычными аутентификационными гемами в контроллеры rails. Однако, если ваша библиотека использует warden для аутентификации (как это делает devise), информация будет в request.env['warden']. В противном случае вам нужно будет получить идентификатор сессии request.env["rack.session"]

Другие вопросы по тегам