Я не уверен, что правильно понимаю ваш вопрос, но я бы сказал:
- в любом случае, ваш JS должен быть в состоянии знать, какие права / роль имеет текущий (то есть, чтобы включить / отключить кнопку)
- также, вы должны убедиться, что на стороне сервера, права пользователя проверены;)
В большинстве случаев я отправляю права на приложения ExtJs в форме:
MyApp.Config = { "user" : { "name" : "john doe", "roles" : ["admin"], ... } };
Я делаю это на PHP на странице макета, загруженной после входа в систему, через:
<?php
$cfg = array("user" => array("name" => $user->name, "roles" => $user->roles);
printf('<script>MyApp.Config = %s;</script>', json_encode($cfg));
В приложении JS:
var isAdmin = MyApp.Config.user.roles.indexOf('admin')>=0);
var button = new Ext.Button({text:'New', disabled : !isAdmin});
Я уверен, что вы можете сделать это легко с Groovy;)
Конечно, вы также можете отправить конфигурацию через Ext.lib.Ajax.request
, если между сеансами нет перезагрузки страницы.