パッケージnet.user1.reactor
クラスpublic class UserAccount
継承UserAccount Inheritance flash.events.EventDispatcher

バージョン : Reactor 1.0.0

UserAccountクラスはUnionのユーザーアカウントを表します。 各ユーザーアカウントは永続属性内の情報を保存できます。これらはサーバー側のデータベースか他のカスタムデータソースに格納されます。 ユーザーアカウントはAccountManagerクラスのcreateAccount()メソッドで生成されます。 クライアントはAccountManagerクラスのlogin()メソッドを通してユーザーアカウントにログインします。 クライアントがログインするとき、そのClientオブジェクトはUserAccountオブジェクトとリンクされます。 アカウントのイベントとデータにアクセスするには、ClientクラスのgetAccount()メソッドを使用してください。これはUserAccountオブジェクトを返します。

クライアントがアカウントにログインするとき、そのアカウントのグローバル属性は自動的にロードされ、UserAccountのgetAttribute()メソッドを通してただちに利用可能です。 ルームをスコープとしたアカウント属性はログインクライアントがそのルームに入室か観察を開始するときに自動的にロードされます。

現クライアントが把握しているUserAccountオブジェクトのリストにアクセスするには、AccountManagerクラスのgetAccounts()メソッドを使用してください。

次のコードはユーザーアカウントの生成、ログイン、そして永続アカウント属性をセットする方法の実演です。 Reactorのユーザーアカウントの概要については、AccountManagerクラスを参照してください。

   package {
     import flash.display.Sprite;
        import net.user1.reactor.Reactor;
     import net.user1.reactor.ReactorEvent;
     
     public class AccountExample extends Sprite {
       protected var reactor:Reactor;
    
       public function AccountExample () {
         reactor = new Reactor();
         reactor.addEventListener(ReactorEvent.READY, readyListener);
         reactor.connect("tryunion.com", 80);
       }
   
       protected function readyListener (e:ReactorEvent):void {
         // userID "bob" でユーザーアカウントを生成する
         reactor.getAccountManager().createAccount("bob", "secretpassword");
         // ユーザーがログインするとき通知を受けるように登録する
         reactor.getAccountManager().addEventListener(AccountEvent.LOGIN, loginListener);
         // 現クライアントを "bob" のユーザーアカウントにログインさせる
         reactor.getAccountManager().login("bob", "secretpassword");
       }
   
       protected function loginListener (e:AccountEvent):void {
         // 現クライアントがログインするとき...
         if (e.getAccount().isSelf()) {
           // ..."age" という名称の属性をbobのユーザーアカウントにセーブする
           e.getAccount().setAttribute("age", "39");
         }
       }
     }
   }
   

関連項目

Client.getAccount()
AccountManager.getAccounts()
AccountManager
AccountEvent


パブリック メソッド
 メソッド定義元
  
UserAccount(userID:String, log:Logger, accountManager:AccountManager, clientManager:ClientManager, roomManager:RoomManager)
コンストラクタ
UserAccount
  
addRole(role:String):void
新たなセキュリティロールをアカウントに追加します。
UserAccount
  
changePassword(newPassword:String, oldPassword:String):void
このアカウントのパスワードを変更します。
UserAccount
  
deleteAttribute(attrName:String, attrScope:String = null):void
ユーザーアカウントから属性を削除します。
UserAccount
  
getAttribute(attrName:String, attrScope:String = null):String
永続クライアント属性を取得します。
UserAccount
  
getAttributes():Object
このユーザーアカウントにおける全ての属性を含むオブジェクトを返します。
UserAccount
  
getAttributesByScope(scope:String = null):Object
与えられたスコープ、あるいは全てのスコープにおいてこのUserAccountインスタンスに定義されている全ての属性名と値を含むオブジェクトを返します。
UserAccount
  
このアカウントのClientオブジェクトへの参照を返します。これはこのアカウントがログインしている場合にのみ利用可能です。
UserAccount
  
このUserAccountが現在ログインしているかどうかを示します。
UserAccount
  
このアカウントに対応するクライアントの内部的なClientオブジェクトを返します。
UserAccount
  
getUserID():String
このアカウントのユーザーIDを返します。
UserAccount
  
isLoggedIn():Boolean
このユーザーアカウントの接続状態がConnectionState.LOGGED_INである場合、trueを返します。それ以外の場合はfalseです。
UserAccount
  
isModerator():Boolean
このアカウントがモデレーター権限を持っているかどうかを示すBoolean値を返します。
UserAccount
  
isSelf():Boolean
もし現クライアントがこのUserAccountのもとにログインしていればtrueを返します。
UserAccount
  
logoff(password:String = null):void
このユーザーアカウントをログオフさせます。
UserAccount
  
observe():void
このUserAccountの状態が変化するときにいつでも現クライアントに通知するようにサーバーに要求します。
UserAccount
  
removeRole(userID:String, role:String):void
アカウントからセキュリティロールを除去します。
UserAccount
  
setAttribute(attrName:String, attrValue:String, attrScope:String = null, isShared:Boolean = true, evaluate:Boolean = false):void
このユーザーアカウントのもとでサーバー上に永続的に格納されるアカウント属性を割り当てます。
UserAccount
  
このUserAccountの観察を停止するようにサーバーに要求します。
UserAccount
  
toString():String
[オーバーライド] このオブジェクトのString表現を提供します。
UserAccount
Events
 Event Summary 定義元
   先に行われた UserAccount.addRole() か AccountManager.addRole() 要求の結果を受信したときに送出されます。UserAccount
   現クライアントがアカウントのパスワードを変更するときに送出されます。UserAccount
   現クライアントが先に行われたユーザーアカウントのパスワード変更要求の結果を受信するときに送出されます。UserAccount
   現クライアントによって把握されているクライアントのいずれかがログインするときに送出されます。UserAccount
   現クライアントによって把握されているユーザーアカウントのいずれかがログオフするときに送出されます。UserAccount
   現クライアントが先に行われたクライアントのログオフ要求の結果を受信するときに送出されます。UserAccount
   現クライアントがユーザーアカウントを観察するときに送出されます。UserAccount
   先に行われたUserAccount.observe()かAccountManager.observeAccount()要求の結果を受信したときに送出されます。UserAccount
   先に行われた UserAccount.removeRole() か AccountManager.removeRole() 要求の結果を受信したときに送出されます。UserAccount
   現クライアントがユーザーアカウントの観察を停止するときに送出されます。UserAccount
   先に行われたUserAccount.stopObserving()かAccountManager.stopObservingAccount()要求の結果を受信したときに送出されます。UserAccount
   ユーザーアカウントが同期してサーバー状態と一致したときに送出されます。UserAccount
コンストラクタの詳細
UserAccount()コンストラクタ
public function UserAccount(userID:String, log:Logger, accountManager:AccountManager, clientManager:ClientManager, roomManager:RoomManager)

コンストラクタ 開発者はUserAccountのコンストラクタを直接呼び出す必要はありません。 Reactorはクライアントがログインするときに自動的にUserAccountオブジェクトを生成します。

パラメータ
userID:String
 
log:Logger
 
accountManager:AccountManager
 
clientManager:ClientManager
 
roomManager:RoomManager
メソッドの詳細
addRole()メソッド
public function addRole(role:String):void

バージョン : Reactor 1.0.0

新たなセキュリティロールをアカウントに追加します。

パラメータ

role:String — 新たに希望するロール(役割)です。 ビルトインのセキュリティロールの一覧については、SecurityRole クラスを参照してください。

関連項目

changePassword()メソッド 
public function changePassword(newPassword:String, oldPassword:String):void

バージョン : Reactor 1.0.0

このアカウントのパスワードを変更します。

パラメータ

newPassword:String — 希望する新しいアカウントパスワードです。 nullではあってはいけません。
 
oldPassword:String — 現在のアカウントのパスワードです。 passwordが渡されない場合、そのパスワードは変更を要求中のクライアントが十分な特権を有している場合にのみ変更されます。

関連項目

deleteAttribute()メソッド 
public function deleteAttribute(attrName:String, attrScope:String = null):void

バージョン : Reactor 1.0.0

ユーザーアカウントから属性を削除します。 属性の削除についての一般的な詳細については、ClientクラスのdeleteAttribtue()メソッドを参照してください。

パラメータ

attrName:String
 
attrScope:String (default = null)

関連項目

getAttribute()メソッド 
public function getAttribute(attrName:String, attrScope:String = null):String

バージョン : Reactor 1.0.0

永続クライアント属性を取得します。 このUserAccountの永続属性はこのUserAccountがサーバーの状態と同期しているときにのみ利用可能です。 アカウントに同期するには、現クライアントは次のいずれかを実行する必要があります:

属性の取得についての一般的な詳細については、ClientクラスのgetAttribute()メソッドを参照してください。

パラメータ

attrName:String
 
attrScope:String (default = null)

戻り値
String

関連項目

getAttributes()メソッド 
public function getAttributes():Object

バージョン : Reactor 1.0.0

このユーザーアカウントにおける全ての属性を含むオブジェクトを返します。 このオブジェクトの構造は、類似のClientメソッドであるgetAttributes()のものと一致します。 詳細はobserveRoom()メソッドを参照してください。

戻り値
Object

関連項目

getAttributesByScope()メソッド 
public function getAttributesByScope(scope:String = null):Object

バージョン : Reactor 1.0.0

与えられたスコープ、あるいは全てのスコープにおいてこのUserAccountインスタンスに定義されている全ての属性名と値を含むオブジェクトを返します。 このオブジェクトの構造は、類似のClientメソッドであるgetAttributesByScope()のものと一致します。 詳細はobserveRoom()メソッドを参照してください。

パラメータ

scope:String (default = null)

戻り値
Object

関連項目

getClient()メソッド 
public function getClient():IClient

バージョン : Reactor 1.0.0

このアカウントのClientオブジェクトへの参照を返します。これはこのアカウントがログインしている場合にのみ利用可能です。

戻り値
IClient

関連項目

getConnectionState()メソッド 
public function getConnectionState():int

バージョン : Reactor 1.0.0

このUserAccountが現在ログインしているかどうかを示します。

戻り値
int — 次の三つの定数のいずれか一つに対応するint値です: ConnectionState.LOGGED_IN, ConnectionState.NOT_CONNECTED, またはConnectionState.UNKNOWN。
getInternalClient()メソッド 
public function getInternalClient():Client

バージョン : Reactor 1.0.0

このアカウントに対応するクライアントの内部的なClientオブジェクトを返します。 このメソッドはアプリケーションが自作のクライアントクラスをもつクライアントの構成されたClientオブジェクトにアクセスしたいときに必要です。 詳細については、ClientManagerクラスのgetInternalClient()メソッドを参照してください。

戻り値
Client

関連項目

getUserID()メソッド 
public function getUserID():String

バージョン : Reactor 1.0.0

このアカウントのユーザーIDを返します。

戻り値
String

関連項目

isLoggedIn()メソッド 
public function isLoggedIn():Boolean

バージョン : Reactor 1.0.0

このユーザーアカウントの接続状態がConnectionState.LOGGED_INである場合、trueを返します。それ以外の場合はfalseです。

戻り値
Boolean
isModerator()メソッド 
public function isModerator():Boolean

バージョン : Reactor 1.0.0

このアカウントがモデレーター権限を持っているかどうかを示すBoolean値を返します。 アカウントにモデレーター権限を割り当てるには、addRole() を使用してください。

戻り値
Boolean — このアカウントがモデレーター権限を持っていれば true で、そうでない場合は false です。

関連項目

isSelf()メソッド 
public function isSelf():Boolean

バージョン : Reactor 1.0.0

もし現クライアントがこのUserAccountのもとにログインしていればtrueを返します。

戻り値
Boolean

関連項目

logoff()メソッド 
public function logoff(password:String = null):void

バージョン : Reactor 1.0.0

このユーザーアカウントをログオフさせます。 この試行の結果はAccountEvent.LOGOFF_RESULTイベントを通して返されます。 もしその試行が成功すると、そのUserAccountオブジェクトはAccountEvent.LOGOFFイベントをトリガーし、対応するクライアントは自動的にUnionサーバーから切断されます。

パラメータ

password:String (default = null) — このアカウントのパスワードです。 passwordが渡されない場合、そのアカウントはログオフ要求中のクライアントが十分な特権を有している場合にのみログオフされます。

関連項目

observe()メソッド 
public function observe():void

バージョン : Reactor 1.0.0

このUserAccountの状態が変化するときにいつでも現クライアントに通知するようにサーバーに要求します。 完全な詳細については、AccountManagerのobserveAccount()メソッドを参照してください。

関連項目

removeRole()メソッド 
public function removeRole(userID:String, role:String):void

バージョン : Reactor 1.0.0

アカウントからセキュリティロールを除去します。

パラメータ

userID:String — 新たに希望するロール(役割)です。 ビルトインのセキュリティロールの一覧については、SecurityRole クラスを参照してください。
 
role:String

関連項目

setAttribute()メソッド 
public function setAttribute(attrName:String, attrValue:String, attrScope:String = null, isShared:Boolean = true, evaluate:Boolean = false):void

バージョン : Reactor 1.0.0

このユーザーアカウントのもとでサーバー上に永続的に格納されるアカウント属性を割り当てます。

ログインしたクライアントの属性名はそのアカウントの属性名と競合しない点に留意してください。 例えば、クライアントは"score"属性を自身や自身のユーザーアカウントにも定義したりするでしょう。 二つの属性は別々のものとみなされます。すなわち各々が各自の値を持てます。

属性の割当についての一般的な詳細については、ClientクラスのsetAttribute()メソッドを参照してください。

パラメータ

attrName:String
 
attrValue:String
 
attrScope:String (default = null)
 
isShared:Boolean (default = true)
 
evaluate:Boolean (default = false)

関連項目

stopObserving()メソッド 
public function stopObserving():void

バージョン : Reactor 1.0.0

このUserAccountの観察を停止するようにサーバーに要求します。 結果的に、サーバーはUserAccountの状態が変化する時にもう通知を送信しません。

stopObserving()呼び出しの結果はAccountEvent.STOP_OBSERVING_RESULTイベントを通して返されます。 もしその呼び出しが成功すると、AccountEvent.STOP_OBSERVINGイベントもトリガーされます。

関連項目

toString()メソッド 
override public function toString():String

バージョン : Reactor 1.0.0

このオブジェクトのString表現を提供します。

戻り値
String
Event Detail
ADD_ROLE_RESULT イベント
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.ADD_ROLE_RESULT

先に行われた UserAccount.addRole() か AccountManager.addRole() 要求の結果を受信したときに送出されます。

関連項目

CHANGE_PASSWORD イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.CHANGE_PASSWORD

現クライアントがアカウントのパスワードを変更するときに送出されます。 ユーザーはAccountManagerのchangePassword()メソッドかUserAccountオブジェクトのchangePassword()メソッドを通して自分自身のパスワードを変更できます。 十分な権限があれば、現クライアントは他ユーザーのパスワードを変更できます。 サーバーサイドのコードは任意のユーザーのパスワードを変更できます。

関連項目

CHANGE_PASSWORD_RESULT イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.CHANGE_PASSWORD_RESULT

現クライアントが先に行われたユーザーアカウントのパスワード変更要求の結果を受信するときに送出されます。 パスワード変更要求の結果を調べるには、getStatus()を使用してください。このメソッドの戻り値は次のどれかになります:

関連項目

LOGIN イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.LOGIN

現クライアントによって把握されているクライアントのいずれかがログインするときに送出されます。 クライアントが現クライアントによって把握される状況のリストについては、ClientManagerのclientIsKnown()メソッドを参照してください。 しかしながら、RoomクラスのsetUpdateLevels()メソッドを通して"入室者ログインログオフ更新"と"観察者ログインログオフ更新"を無効化することで、現クライアントがルーム入室者とルーム観察者のログイン通知を受けないようにもできる点に留意してください。

AccountEvent.LOGINイベントはログインしたクライアントのClientオブジェクトを通して送出され、次にログインしたアカウントのUserAccountオブジェクト、次にAccountManagerからも送出されます。

関連項目

LOGOFF イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.LOGOFF

現クライアントによって把握されているユーザーアカウントのいずれかがログオフするときに送出されます。 クライアントが現クライアントによって把握される状況のリストについては、ClientManagerのclientIsKnown()メソッドを参照してください。 しかしながら、RoomクラスのsetUpdateLevels()メソッドを通して"入室者ログインログオフ更新"と"観察者ログインログオフ更新"を無効化することで、現クライアントがルーム入室者とルーム観察者のログオフ通知を受けないようにもできる点に留意してください。

AccountEvent.LOGOFFイベントはログオフしたクライアントのClientオブジェクトを通して送出され、次にログオフしたアカウントのUserAccountオブジェクト、次にAccountManagerからも送出されます。

関連項目

LOGOFF_RESULT イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.LOGOFF_RESULT

現クライアントが先に行われたクライアントのログオフ要求の結果を受信するときに送出されます。 ログオフ要求の結果を調べるには、getStatus()を使用してください。このメソッドの戻り値は次のどれかになります。

関連項目

OBSERVE イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.OBSERVE

現クライアントがユーザーアカウントを観察するときに送出されます。 完全な詳細については、AccountManagerのobserveAccount()メソッドを参照してください。

関連項目

OBSERVE_RESULT イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.OBSERVE_RESULT

先に行われたUserAccount.observe()かAccountManager.observeAccount()要求の結果を受信したときに送出されます。

関連項目

REMOVE_ROLE_RESULT イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.REMOVE_ROLE_RESULT

先に行われた UserAccount.removeRole() か AccountManager.removeRole() 要求の結果を受信したときに送出されます。

関連項目

STOP_OBSERVING イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.STOP_OBSERVING

現クライアントがユーザーアカウントの観察を停止するときに送出されます。

関連項目

STOP_OBSERVING_RESULT イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.STOP_OBSERVING_RESULT

先に行われたUserAccount.stopObserving()かAccountManager.stopObservingAccount()要求の結果を受信したときに送出されます。

関連項目

SYNCHRONIZE イベント  
Event Object Type: AccountEvent
AccountEvent.type variable = net.user1.reactor.AccountEvent.SYNCHRONIZE

ユーザーアカウントが同期してサーバー状態と一致したときに送出されます。

関連項目