Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Авторизация при помощи PHP и MySQL (http://www.flasher.ru/forum/showthread.php?t=169552)

zigfridus 07.10.2011 11:15

Авторизация при помощи PHP и MySQL
 
Добрый день.

Хочу посоветоваться. Необходимо реализовать авторизацию в моем Flex приложение. Таблицу с логинами и паролями пользователей я планирую в MySQL создать и получать доступ к ней через PHP. Вопрос, собственно в чем, возможно ли в Flex разделить доступ пользователей к объектам приложения?
К примеру: при успешной авторизации пользователя с правами админа ему предоставляется доступ к панелям, содержащим формы, с добавлением, редактированием и удалением данных, а также к таблице с отображением данных. При авторизации пользователя с урезанными правами ему предоставляется доступ только на просмотр таблицы с данными.
Возможно ли резать доступ на уровни Flex панелей? Или обычно для реализации моих целей во Flex используют какой-то другой способ?

goodguy 07.10.2011 11:17

Это обычно реализуется на сервере. Флешка должна только отображать то, что ей диктует сервер. Даже если ее хакнут, и выведут админские панели, сервер все равно не примет от них никаких действий, если юзер не админ.

zigfridus 07.10.2011 11:26

Т.е. можно показывать пользователю, даже если у него нет админских прав, админские панели. Но при попытке совершить им какие-либо админские действия в них пугать его сообщения со стороны сервера. Я правильно Вас понял?

goodguy 07.10.2011 11:39

Нет. Зачем ему их показывать? Просто при авторизации запрашивать у сервера права пользователя с таким то айди и паролем, и если пользователь - админ, то врубать панельки на клиенте.

zigfridus 07.10.2011 12:20

Ага, где-то так, как я и планировал раньше.
Большое спасибо.

zigfridus 20.10.2011 18:11

Добрый день.

Дабы не плодить темы решил тут спросить.
Хочу, к примеру, заблокировать после инициализации программы несколько NavigatorContent для некоторых пользователей. Блокирую NavigatorContent в функции creationComplete() при помощи параметра enabled (например navInsert.enabled = false). Проблема в том, что эти NavigatorContent находятся на разных закладках и поэтому успешно блокируется только NavigatorContent на первой закладке, которая открывается после инициализации, а при попытке блокировать NavigatorContent на закладке, которая еще не прорисовалась - выдается ошибка:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

Подскажите, где правильно прописать операции блокировки?

zigfridus 24.10.2011 15:31

Почитав литературу, я решил что выбрал неправильный способ блокировки компонент. Более верным было бы использование состояний. Но, переделывая свою программу, я наткнулся на некую трудность. Состояния у меня объявлены в основном компоненте <s:Application>, к которому подключаются несколько внешних MXML компонент <s:NavigatorContent>. Каким образом можно привязать состояния из основного компонента <s:Application> к элементам внутри внешних MXML?

Добавлено через 28 часов 16 минут
Разобрался. Приблизительно выглядит так:
Код AS3:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                          xmlns:s="library://ns.adobe.com/flex/spark"
                          xmlns:mx="library://ns.adobe.com/flex/mx"
                          xmlns:local="*">
 
<s:states>
<s:State name="login"/>
<s:State name="guests"/>
<s:State name="administrators"/>               
</s:states>
 
<fx:Script>
<![CDATA[
//При удачной аутентификации меняем текущее состояние
private function resultHandlerCheckUser(event:ResultEvent):void {
  currentState = "administrators";
  tab1.currentState = "administrators";
}
]]>
</fx:Script>
 
<mx:TabNavigator id="tabs" includeIn="administrators,guests">
                <local:tab1 id="tab1"/>
</mx:TabNavigator>
</s:Application>

В tab1.mxml прописаны такие же состояния.

Толковый у меня монолог получился. Спасибо мне :)


Часовой пояс GMT +4, время: 10:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.