badqiu

          XPer
          隨筆 - 46, 文章 - 3, 評論 - 195, 引用 - 0
          數(shù)據(jù)加載中……

          Flex flex企業(yè)級UI權(quán)限控制

          網(wǎng)上搜索了一番,用于控制flex UI組件的權(quán)限的框架只有chimp相近一些.

          但是不喜歡他的基于flex annotation的權(quán)限控制方式.遂決定自己寫一套flex權(quán)限控制框架。

          如果你熟悉作者的另外一套javascript 表單驗(yàn)證框架rapid-validation,將會(huì)對下面的使用方式有似曾相識的感覺。

          一.快速開始

          1) 下載并添加flex_security.swf在你的flex libs中

          2) 啟動(dòng)權(quán)限控制

          //啟動(dòng)權(quán)限控制,permissions為用戶擁有的權(quán)限字符串列表
          SecurityControler.start(permissions,'visible');

          3) 通過增加styleName=security(permission,controlBy)為你的按鈕增加權(quán)限控制

          <mx:Button label="new user" styleName="security(user_new)" />
          <mx:Button label="update user" styleName="security(user_update)"/>

          如上,如果用戶擁有這兩個(gè)權(quán)限(permissions):user_new,user_update,則可以見到這兩個(gè)按鈕,然后執(zhí)行相關(guān)操作

          注意:如果你不喜歡styleName添加權(quán)限保護(hù),還有其它方式:如實(shí)現(xiàn)接口,編程方式增加,請查看后面的demo

           

          二.ActionScript代碼的權(quán)限控制

           

          if(SecurityControler.isPermitted('blog_delete')) 
          {
              //execute delete blog action
          }

           

          三.在線demo

           

           

          四.詳細(xì)描述

          1) styleName: security(permission,controlBy)

          • permission: 權(quán)限標(biāo)識,用戶擁有該權(quán)限,才可以執(zhí)行相關(guān)操作??蛇x參數(shù),如果為空,則會(huì)取該comp.id作為permission
          • controlBy: 按什么方式來控制權(quán)限,有(visible,enabled,includeInLayout,remove)??蛇x參數(shù),如果為空,則取SecurityControler?.start(perms,defaultControlBy)中的defaultControlBy的值,默認(rèn)是visible

          2) controlBy: 按什么方式來控制權(quán)限

          • visible : 可見性,有權(quán)限為true,沒有權(quán)限為false
          • enabled : 激活狀態(tài),有權(quán)限為true,沒有權(quán)限為false
          • includeInLayout : 有權(quán)限為true,沒有權(quán)限為false
          • remove : 使用removeChild()將對象從parent中remove掉,有權(quán)限不remove,沒有權(quán)限則remove
          • all : 包含前面所講的:visible,enabled,includeInLayout,但不包含remove

          3) SecurityControler類,包含全部的主要權(quán)限控制操作

          /**
          * 啟動(dòng)權(quán)限控制
          * permissions: 字符串列表,為擁有的權(quán)限
          * default_control_by: 按那種方式控制權(quán)限,可選值: visible,enabled,remove,includeInLayout
          */
          public static function start(permissions:ArrayCollection = null,default_control_by : String = "visible"):void 

          //停止權(quán)限控制 
          public static function stop():void 

          // 移除所有權(quán)限
          public static function removeAllPerms():void
          /**
          * 更新?lián)碛械臋?quán)限
          * perms: 字符串列表,用戶擁有的權(quán)限
          */ 
          public static function updatePerms(perms:ArrayCollection):void 

          //增加一條權(quán)限 
          public static function addPerm(permName:String):void

          // 減少一條權(quán)限
          public static function removePerm(permName:String):void

          // 判斷是否擁有權(quán)限
          //示例: if(SecurityControler.isPermitted('blog_delete')) { do some thing} 
          public static function isPermitted(perm:String):boolean

           

          項(xiàng)目地址: http://code.google.com/p/flex-security/

          posted on 2010-02-25 17:32 badqiu 閱讀(3147) 評論(2)  編輯  收藏

          評論

          # re: Flex flex企業(yè)級UI權(quán)限控制  回復(fù)  更多評論   

          很感謝樓主的努力,但是我按照你說的運(yùn)行程序,權(quán)限一點(diǎn)都不起作用。
          2010-03-05 09:05 | hjn

          # re: Flex flex企業(yè)級UI權(quán)限控制[未登錄]  回復(fù)  更多評論   

          請自己查看demo
          2010-03-05 12:12 | badqiu

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 昌都县| 泸西县| 玛纳斯县| 金乡县| 葫芦岛市| 太仆寺旗| 广南县| 佳木斯市| 清河县| 郎溪县| 青神县| 灵石县| 永平县| 杭州市| 美姑县| 临泽县| 和平区| 土默特右旗| 南昌县| 鄱阳县| 五河县| SHOW| 思茅市| 开封市| 黄骅市| 昂仁县| 建阳市| 教育| 东平县| 张掖市| 抚顺县| 甘洛县| 廊坊市| 徐汇区| 阳东县| 江门市| 旬邑县| 手游| 日照市| 平舆县| 丹江口市|