Как динамически создать список отображений - вместо:Dynamic Grails Url Mapping конфигурации
class UrlMappings {
static mappings = {
"/helpdesk/user/$action?/$id?" (controller="helpdeskuser")
"/helpdesk/group/$action?/$id?" (controller="helpdeskgroup")
"/helpdesk/company/$action?/$id?" (controller="helpdeskcompany")
"/helpdesk/account/$action?/$id?" (controller="helpdeskaccount")
"/admin/company/$action?/$id?" (controller="admincompany")
"/admin/account/$action?/$id?" (controller="adminaccount")
}
}
что-то вроде этого псевдокода:
class UrlMappings {
static mappings = {
application.controllerClasses.each {
if(it.name.startsWith('helpdesk'))
"/helpdesk/${it.name}/$action?/$id?" (controller="${it.name}")
if(it.name.startsWith('admin'))
"/admin/${it.name}/$action?/$id?" (controller="${it.name}")
}
}
}
(я не понимаю, что статический сопоставления - это хеш-карта? свободные переменные?)
То, что я пытаюсь достичь, это сопоставления на основе типа контроллера - например служба поддержки, администратор или пользовательские контроллеры. После того, как я настроил отображение я хочу добавить безопасности на основе URL-адреса, но я не хочу, чтобы отобразить каждый контроллер индивидуально:
grails.plugins.springsecurity.interceptUrlMap = [
'/helpdesk/**': ['ROLE_HELPDESK','ROLE_ADMIN'],
]
Это работает, спасибо. – DavidC
За исключением того, что теперь и я предполагаю, что перенаправление контроллера не возвращает правильный URL-адрес. –
DavidC
mmm..it должно Dashboard в моем приложении отображает/admin/dashboard с использованием того же кода, что и выше. –