Вы хотите использовать фильтр grails . Используя фильтр, вы можете указать, какие контроллеры и методы (используя подстановочные знаки) вы хотите перехватить, используя методы before / after и afterView.
Это позволяет легко вставить новую переменную в модель, чтобы она была доступна в виде. Вот пример, который использует плагин acegi authenticateService:
class SecurityFilters {
def authenticateService
def filters = {
all(controller:'*', action:'*') {
after = { model ->
def principal = authenticateService.principal()
if (principal != null && principal != 'anonymousUser') {
model?.loggedInUser = principal?.domainClass
log.debug("SecurityFilter: adding current user to model = $model")
} else {
log.debug("SecurityFilter: anonymous user, model = $model")
}
}
}
}
}