ExtJS: лучший способ настроить графический интерфейс для разрешений при запуске? - PullRequest
2 голосов
/ 12 ноября 2010

Я работаю над приложением 100% ExtJS;браузер загружает весь JavaScript и один HTML-файл один раз;после этого все запускается в браузере.

Когда все панели отображаются при запуске (т. е. при запуске Ext.onReady ()), мне нужно скрыть некоторые панели в зависимости от разрешений пользователя. Есть ли распространенная / лучшая практика для настройки графического интерфейса при запуске в зависимости от прав пользователя?

Я думаю, что одним из решений может быть скрытие некоторых панелей по умолчанию.При запуске AJAX можно было бы получить права пользователя, а затем панели можно было бы скрыть в зависимости от этих разрешений.Тем не менее, я подозреваю, что есть лучшие решения.

Любые советы будут с благодарностью.

Примечание: я понимаю, что интерфейсный javascript нельзя доверять как единственный механизмдля проверок безопасности и того, что внутреннему приложению потребуется проверить все действия, полученные от внешнего интерфейса.

1 Ответ

3 голосов
/ 14 ноября 2010

Почему бы просто не написать скрипт на стороне сервера, который выводит привилегированный код на стороне клиента на основе статуса аутентификации пользователя?Вместо того, чтобы ваш клиентский код извлекал данные о разрешениях и разветвлял их, просто сделайте так, чтобы клиентская сторона нажала на скрипт, который выводит соответствующий javascript.

Так что, если у вас есть специальный компонент "SuperAdminPanel",единственный способ, которым клиент когда-либо увидит код, - это если он попадет в ваш скрипт user-js с поддержкой аутентификации и будет признан супер-администратором.

В общем случае такой сценарий может просто отобразить соответствующий сценарий для уровня пользователя, прошедшего аутентификацию.Он также может быть легко расширен для передачи кода или конфигурации, специфичной для отдельных пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...