2010-12-06 6 views
1

«Привет -построить динамический интерфейс в Flex

Я меняющийся, как я строю мой UI от этого:

Если (роль == 'Администратор') myComp.visible = ложь;

... к полностью динамическому пользовательскому интерфейсу на основе того, что возвращается из БД. Сейчас я разрабатываю лучший подход к этому.

Я читал о контроле доступа на основе ролей и понимал, что лучше всего, чтобы сервер генерировал пользовательский интерфейс после аутентификации пользователя, но помимо повторного выполнения всего бэкэнда для хранения MXML и др., Есть ли лучший подход?

Является ли это плохая идея, чтобы иметь объект прав доступа, который имеет свойства, как:

showTabOne: Boolean = истина; allUserToEditGrids: Boolean = false;

Видимость компонентов и включенные свойстваInLayout будут привязаны к этим значениям.

Пользовательский интерфейс также позволит пользователю создавать новые роли и устанавливать разрешения.

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

Любые советы приветствуются.

Спасибо!

ответ

1

Объект Permission - это хорошо, если у вас достаточно сложная политика, естественно отвлечь его на свой класс. О перекомпиляции - привязки могут быть установлены во время выполнения (BindingUtils), возможно, вы можете использовать его, чтобы избежать этого. Не уверен, что

повторно делает весь бэкенд для хранения MXML

Нормального пути будет MXML управления состоит после аутентификации, на самом деле.

+0

Итак, вы видите метод BindingUtils.bindSetter() с обработчиками creationComplete() в компонентах, чтобы определить, что отображается или нет. – fumeng 2010-12-07 15:49:27

1

Сообщайте, что кто-то может обмануть фид или flashvar, чтобы создать объект разрешения, чтобы получить необходимые ему учетные данные в клиентском приложении, что позволяет им просматривать/редактировать предположительно ограниченный контент/области.

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

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

Хранение mxml-серверов для создания динамического представления не является приемлемым подходом. Да вы может, no вы должны не. Нетривиальное использование сайта приведет к быстрому снижению сервера, если вы не реализуете хороший механизм кэширования.

См. Web-tier compilation of MXML files для получения дополнительной информации, хотя это интересная концепция.

+0

Я использую Blaze DS для подключения к БД. Возвращаемые мне данные будут набирать объекты в Java, которые отображаются на объекты AS; XML не требуется. Это должно помешать кому-то подменять возвращаемые разрешения. – fumeng 2010-12-07 15:47:29

0

Ознакомьтесь с описанием Flex Chimp и this article.

+0

Flex Chimp довольно круто, мне это нравится. Это похоже на очень похожий подход к BindingUtils.bindSetter() выше; где роль используется для установки разрешений, а затем компоненты напрямую манипулируются с помощью «removeChild», «enable» и т. д. – fumeng 2010-12-07 16:27:22

Смежные вопросы