Какой лучший способ сохранить леса для доступа разработчиков?
Я работаю над проектом в Grails 2.0.RC1, и я хотел бы иметь возможность сохранить контроллеры скаффолдов и представления для моих доменных объектов, чтобы они были "низкоуровневыми", а разработчик имел доступ только для того, чтобы по-прежнему возиться с вещами, пока возможность разработки рабочей версии представлений и контроллеров (с похожими названиями, особенно для контроллеров). Я хотел бы сохранить их как есть, чтобы я мог их заново сгенерировать при обновлении уровня домена, поэтому простое их перемещение, скорее всего, не сработает.
Я надеюсь, что есть способ сделать магию UrlMapping, которая позволила бы мне получать запросы на "/mgr/book" для контроллера Book в скаффолдах, а "/book" - для моего производственного контроллера. Я не могу найти в документации ничего о том, как иметь сопоставления для определенных групп контроллеров (без указания каждого контроллера по имени в сравнении с нотацией $controller).
Моя другая мысль состоит в том, чтобы превратить мой уровень домена в плагин, а затем создать отдельный проект, который был бы предназначен только для представлений в скаффолде. Это было бы легче удалить перед началом работы, но также кажется более трудоемким и поднимает проблему одновременного запуска двух приложений grails на одном компьютере.
2 ответа
Я хотел бы, чтобы вы пошли, как ваша последняя идея. Это также мой общий подход:
- Создайте встраиваемый плагин для вашей модели домена и общих служб. Это также включает в себя общие плагины, такие как Spring Security и прочее. Это также сократит время разрешения зависимостей для основного приложения.
- Создайте встраиваемый плагин для ваших лесов. Измените шаблон контроллеров леса, чтобы требовать аутентификации и admin-группы.
- Ваше основное приложение использует оба плагина.
Это делает ваше главное приложение чистым и простым, и вы по-прежнему можете восстановить все ваши леса и контроллеры, как вы хотите. И, по крайней мере, горячее развертывание Eclipse STS все равно будет работать!
Однако пока нет простого решения для разделения ваших контроллеров scaffolded по URL.
Если вы используете Spring Security, вы должны иметь возможность использовать экземпляры InterceptUrlMap или RequestMap для защиты URL-адресов контроллера.
Если ваши контроллеры скаффолдов используются только для скаффолдинга (и у вас нет других действий), то вы сможете использовать базовые аннотации Secure для защиты всего контроллера.
Тогда вы можете использовать леса, как обычно, защищенные за логином.
Другие структуры безопасности могут обеспечивать аналогичное управление доступом.