Построить динамический пользовательский интерфейс во Flex - PullRequest
1 голос
/ 06 декабря 2010

'Привет -

Я изменяю способ создания своего пользовательского интерфейса из этого:

Если (role == 'Admin') myComp.visible = false;

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

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

Это плохая идея иметь объект Permissions, который имеет такие свойства, как:

showTabOne: Boolean = true; allUserToEditGrids: Boolean = false;

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

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

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

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

Спасибо!

Ответы [ 3 ]

1 голос
/ 07 декабря 2010

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

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

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

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

См. Компиляция веб-уровня файлов MXML для получения дополнительной информации, поскольку этоинтересная концепция.

1 голос
/ 07 декабря 2010

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

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

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

0 голосов
/ 07 декабря 2010

Ознакомьтесь с Flex Chimp и этой статьей , в которой это описано.

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