Создание администраторских областей в направляющих - общие вопросы

Каков типичный формат/структура для создания административной области в приложении направляющих?

Конкретно я озадачен около этих тем:

  • Как Вы справляетесь с ситуациями, где ресурсы модели доступны и общественности и Администратору? т.е. модель User, где любой может создать пользователей, вход в систему, и т.д. но только администратор может просмотреть пользователей, удалить/обновить их и т.д.
  • Какова надлежащая конвенция для маршрутизации?
  • Как делает контроллеры структуры?
  • Дублирующиеся контроллеры рассматривают хорошо? т.е. администраторская версия и неадминистраторская версия?

Спасибо!

5
задан Mario Zigliotto 7 April 2010 в 21:20
поделиться

3 ответа

У вас может быть 2 контроллера, один для общедоступная и другая часть для администратора и использование пространства имен администратора:

map.namespace(:admin, :path_prefix => 'settings', :name_prefix => 'admin_') do |admin|
    admin.resources :users  
end

Он будет отображаться на / settings / users , а префикс контроллера должен быть Admin :: {{ 1}} как Admin :: UsersController , файл контроллера также должен быть помещен в папку admin в директории app / controllers .

  • Да, если они сделают ваш код более понятным, будет большой беспорядок, если, например, у вас будет один и тот же контроллер для административных и общедоступных представлений, которые затем должны будут отображать разные шаблоны представлений в зависимости от того, обращается ли к ним администратор или обычный пользователь. Также см. Здесь для получения дополнительной информации .
4
ответ дан 14 December 2019 в 13:31
поделиться

Есть серия Railscasts, демонстрирующая подход, позволяющий избежать отдельной области администрирования за счет использования условных выражений в представлениях и контроллерах: Куда идет администрация .

Возможно, это не подходит для вашего случая использования, но на это стоит обратить внимание.

2
ответ дан 14 December 2019 в 13:31
поделиться

В дополнение к настройке пространства имен администратора в моих маршрутах я использую плагин declarative_authorization , который позволяет определять роли для пользователей и определить элементы управления доступом к действиям контроллера, а также к атрибутам модели. Если пользователь пытается получить доступ к действию, для которого нет разрешения, плагин перенаправит его запрос. Действительно аккуратный способ справиться с этим и помогает обеспечить детальный уровень безопасности.

В экосистеме Rails есть несколько других плагинов, которые предлагают аналогичные функции.

0
ответ дан 14 December 2019 в 13:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: