一.快速開始 1) 下載下傳并添加flex_security.swf在你的flex libs中,詳細請檢視附件. 2) 啟動權限控制 //啟動權限控制,permissions為使用者擁有的權限字元串清單 SecurityControler.start(permissions,'visible'); 3) 通過增加styleName=security(permission,controlBy)為你的按鈕增權重限控制 <mx:Button label="new user" styleName="security(user_new)" /> <mx:Button label="update user" styleName="security(user_update)"/> 如上,如果使用者擁有這兩個權限(permissions):user_new,user_update,則可以見到這兩個按鈕,然後執行相關操作 二.ActionScript代碼的權限控制 if(SecurityControler.isPermitted('blog_delete')) { //execute delete blog action } 三.線上demo - helloworld_by_styleName 示例使用styleName添權重限保護
- helloworld_by_interface 示例使用實作接口來添權重限保護
- helloworld_by_annotation 示例使用annotation: Projected來添權重限保護
- helloworld_by_manual 示例使用手工的方式添權重限保護
- demo源代碼位址
四.較長的描述 styleName: security(permission,controlBy) - permission: 權限辨別,使用者擁有該權限,才可以執行相關操作。可選參數,如果為空,則會取該comp.id作為permission
- controlBy: 按什麼方式來控制權限,有(visible,enabled,includeInLayout,remove)。可選參數,如果為空,則取SecurityControler.start(perms,defaultControlBy)中的defaultControlBy的值,預設是visible
controlBy 按什麼方式來控制權限。 - visible : 可見性,有權限為true,沒有權限為false
- enabled : 激活狀态,有權限為true,沒有權限為false
- includeInLayout : 有權限為true,沒有權限為false
- remove : 使用removeChild()将對象從parent中remove掉,有權限不remove,沒有權限則remove
- all : 包含前面所講的:visible,enabled,includeInLayout,但不包含remove
SecurityControler類,包含全部的主要權限控制操作: public static function start(permissions:ArrayCollection = null,default_control_by : String = "visible"):void //停止權限控制 public static function stop():void // 移除所有權限 public static function removeAllPerms():void public static function updatePerms(perms:ArrayCollection):void //增加一條權限 public static function addPerm(permName:String):void // 減少一條權限 public static function removePerm(permName:String):void // 判斷是否擁有權限 //示例: if(SecurityControler.isPermitted('blog_delete')) { do some thing} public static function isPermitted(perm:String):boolean 參考網址:http://code.google.com/p/flex-security/ |