Grails 2.4.5 здесь. Я пытаюсь реализовать следующее поведение UX для своих GSP:
- Если пользователь имеет право нажимать кнопку, тогда они могут это сделать; Однако
- Если пользователь не имеет права нажимать кнопку, тогда, когда они нажимают кнопку, в верхней части экрана появляется баннерное сообщение (flash?) с розовым/розоватым/красным фоном, в котором говорится: "Вы не знаете, t иметь разрешение на выполнение этого действия
Чтобы определить, имеет ли пользователь требуемое разрешение, у меня есть доступ к функциям как из слоев Groovy, так и для слоев GSP/taglib.
С уровня Groovy/controller:
SecurityUtils.hasPermission(String permission)
Ex: SecurityUtils.hasPermission('UPDATE_BUZZ')
Из слоя GSP/taglib:
<sec:hasPermission permission="<permission name>">???</sec:hasPermission>
Ex: <sec:hasPermission permission="UPDATE_BUZZ">???</sec:hasPermission>
Итак, учитывая эти два доступных механизма проверки доступа и учитывая следующий контроллер:
class FizzController {
BuzzService BuzzService
def buzz() {
SomeData dataModel = buzzService.getModel(params)
render(view: 'buzz', model: [ dataModel: dataModel ])
}
}
... где buzz.gsp
:
<!-- Lots of HTML/GSP here -->
<g:submitButton name="update" value="Update" />
<!-- Lots more HTML/GSP down here -->
Учитывая все это, мой вопрос: Как/где я должен: (1) ответить на кнопку "update
", обработчик кликов, (2) выполнить проверку доступа и (3) отобразить ошибку /banner/flash message Пример кода (даже псевдокод) был бы самым потрясающим!