fkjava

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

           

           任何一款框架都應(yīng)該有自己的菜單和權(quán)限管理策略,LML本來是沒有的,后來借鑒了一下就有了。LML毫不保留的借鑒了公司正在使用的Castle.MonoRail框架的菜單和權(quán)限管理策略,以及權(quán)限審核策略,務(wù)求山寨的完美。由于本人能力有限,再者本人實際情況下并沒有閱讀過Castle.MonoRail的源碼,所以粗糙之處敬請原諒,以后還定會加以改正和改進(jìn)。

             

              菜單即鏈接,LML中每一個Action中的任何一個方法都可以成為一個菜單,實際情況下我們從沒有把一個沒有返回視圖的方法作為一個菜單,但是它可能對應(yīng)一個權(quán)限。

             

              權(quán)限并不是鏈接,但是訪問鏈接,即使是通過菜單訪問鏈接,都可能需要通過權(quán)限審核。鏈接和權(quán)限也有著莫大的關(guān)聯(lián)。

             

              雖然我可能解釋的很粗糙,但是大家肯定能理解一下這樣的關(guān)系:

             

              1, 一個菜單就是有一個鏈接。

             

              2, 一個鏈接的訪問可能需要通過權(quán)限的審核,即一個鏈接(可能是菜單)可以對應(yīng)一個權(quán)限。

             

              還需要注意這樣一點:

             

              3, LML中權(quán)限并不會單獨存在,它依托于一個菜單而展現(xiàn)存在。原因是:在我們這樣的模塊開發(fā)中,基本上一個Action類就對應(yīng)一個模塊,一個模塊其實相當(dāng)于一個菜單,在這個Action類中出現(xiàn)的所有權(quán)限,都讓它歸屬于這一個大菜單,便與收集和管理。LML的菜單權(quán)限策略借鑒Castle.MonoRail,理解起來有些問題,請原諒。

             

              使用LML的菜單和權(quán)限管理策略需要4步:

             

              1, 配置菜單和權(quán)限初始化Bean,代碼如下:

             

              權(quán)限初始化Bean

             

              <bean id=“InitMenuPower”

             

              class=“LML.Core.System.InitMenuPower”><property name=“packages”

             

              value=“LML.Action.System,LML.Action.Article”/>

             

              </bean>

             

              初始化參數(shù)是需要初始化菜單和權(quán)限的包名,多個請使用英文逗號隔開。

             

              2, Action配置定義權(quán)限攔截器,代碼如下:

             

              自定義權(quán)限攔截器

             

              <interceptors><interceptor name=“power” class=“LML.Core.System.PowerInterceptor”></interceptor>

             

              <interceptor-stack name=“baseStack”>

             

              <interceptor-ref name=“defaultStack”></interceptor-ref>

             

              <interceptor-ref name=“power”></interceptor-ref>

             

              </interceptor-stack>

             

              </interceptors>

             

              3, 為方法(鏈接)定義菜單和權(quán)限,LML中使用注解來定義,代碼如下:

             

              使用注解定義菜單和權(quán)限

             

              @SysMenuMenuId = System, MenuName = “系統(tǒng)管理”, MenuPic = sys.png, MenuParent = “”, MenuLevel = 1, MenuSort = 1

             

              @SysPowerPowerId = SystemPower, PowerMenu = System, PowerName = “系統(tǒng)管理查看”)

             

              public void System()

             

              {

             

              }

             

              Sysmenu各個參數(shù)的意義分別為:菜單ID,菜單名稱,菜單圖片,上級菜單ID,菜單層級,菜單排序。

             

              Syspower各個參數(shù)的意義分別為:權(quán)限ID,所屬菜單ID,權(quán)限名稱。

             

              4, 初始化。

             

              初始化操作:收集系統(tǒng)中如第三步驟定義的菜單和權(quán)限,插入數(shù)據(jù)庫永久保存。毫無疑問,數(shù)據(jù)庫結(jié)構(gòu)需要自行設(shè)計。

             

              以上四個步驟做完了,系統(tǒng)將能夠自動化收集菜單和權(quán)限,并能夠進(jìn)行管理。

             

              下一集我們會說到初始化操作。

             

              經(jīng)過以上簡單介紹,想必大家都知道在LML如何簡單的使用菜單和權(quán)限了,我覺得就算是讓你自行設(shè)計開發(fā)一套類似的菜單和權(quán)限管理策略,也是小零食一袋了。我一直對LML的要求就是足夠簡單,對于菜單和權(quán)限也不例外。沒有很復(fù)雜的概念,也沒有很復(fù)雜的語法,通過以上步驟就可以就使一個業(yè)務(wù)系統(tǒng)納入較為靈活的菜單和權(quán)限管理。

             

          當(dāng)然了,這并不是完美的,必定簡單的策略做不了太復(fù)雜的事情。獻(xiàn)丑了。

              您正在看的文章來自瘋狂軟件教育中心 www.fkjava.org

              信息咨詢:Q564205990             星老師

           

          posted on 2012-08-31 14:46 瘋狂軟件 閱讀(175) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新绛县| 横山县| 开平市| 丹寨县| 澄迈县| 石嘴山市| 南召县| 陆良县| 泸溪县| 景洪市| 平塘县| 泽普县| 潜江市| 葵青区| 淳化县| 香河县| 工布江达县| 澎湖县| 上虞市| 宜兰市| 孙吴县| 榆林市| 台南县| 杭州市| 和平县| 香港 | 电白县| 攀枝花市| 淳安县| 犍为县| 石嘴山市| 望都县| 山阴县| 肇州县| 大田县| 固始县| 铜鼓县| 鄱阳县| 安丘市| 沧源| 北海市|