<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-11  評論-16  文章-1  trackbacks-0

    第五章

    細粒度數據查詢權限

    (下)

     

     

    上一章講解通過設計器,設計出數據查詢,并在線測試。本章講解如何快速定制數據查詢,如果將業務代碼中的if else邏輯判斷去掉,如何將這種細粒度的權限集成到業務系統。

     

    快速定制數據查詢

    上章定制了“查詢所有員工”數據查詢。下面我們通過復制的方式快速定制“查詢本分公司及下屬營業部員工”和“查詢本營業部員工”兩個數據查詢。

     

    打開權限設計器  http://localhost:8080/mydemo/metadmin/designer

    按照如下步驟操作,來定制“查詢本分公司及下屬營業部員工”數據查詢:

    1.         右擊“查詢所有員工”,選擇彈出菜單中“復制”菜單項;

    2.         在彈出的對話框中,名稱欄輸入“查詢本分公司及下屬營業部員工”,描述欄輸入“分公司用戶具有權限查看”,點擊“確認”按鈕;

    3.         點擊“查詢本分公司及下屬營業部員工”,選擇“WHERE”標簽頁,修改WHERE條件;

    4.         右擊“條件組”,選擇“新增條件組”;

    5.         修改該條件組的“連接符”為“OR”;

    6.         右擊剛才新增的條件組,選擇“新增 二元條件”;

    7.         選擇第一個字段為“company.id

    8.         右擊第二個字段,將該字段類型替換為“用戶屬性”,并選擇“companyId”用戶屬性;

    9.         右擊剛才新增的條件組,選擇“新增 二元條件”;

    10.     選擇第一個字段為“company.parentId”;

    11.     右擊第二個字段,將該字段類型替換為“用戶屬性”,并選擇“companyId”用戶屬性;

    12.     點擊“保存”按鈕。

     

    下圖示:(復制數據查詢)


    下圖示:(改變字段類型)


    按照如下步驟操作,來定制“查詢本營業部員工”數據查詢:

    1.         右擊“查詢所有員工”,選擇彈出菜單中“復制”菜單項;

    2.         在彈出的對話框中,名稱欄輸入“查詢本營業部員工”,描述欄輸入“營業部用戶具有權限查看”,點擊“確認”按鈕;

    3.         點擊“查詢本營業部員工”,選擇“WHERE”標簽頁,修改WHERE條件;

    4.         右擊“條件組”,選擇“新增 二元條件”;

    5.         選擇第一個字段為“company.id

    6.         右擊第二個字段,將該字段類型替換為“用戶屬性”,并選擇“companyId”用戶屬性;

    7.         點擊“保存”按鈕。

    用戶分類

    細粒度權限控制,核心問題就是針對不同用戶或者不同類型用戶,采取不同控制。Metadmin采用用戶分類來描述不同用戶類型。用戶分類在整個業務系統,在各個權限設置時候都可以復用。

     

    示例程序,我們要創建三個用戶分類:總公司用戶、分公司用戶和營業部用戶。

    總公司用戶的規則是:用戶的機構級別等于1;

    分公司用戶的規則是:用戶的機構級別等于2

    營業部用戶的規則是:用戶的機構級別等于3

     

    在權限設計器執行如下步驟,完成“總公司用戶”用戶分類定制:

    1.         右擊用戶分類樹形結構根節點,選擇“新增 用戶分類”;

    2.         在彈出對話框里面,名稱處輸入“總公司用戶”;

    3.         在變量窗口,定義用戶屬性值變量companyLevel,將用戶屬性companyLevel輸入該變量;

    4.         在變量窗口,定義固定值變量level,其值等于1

    5.         在表達式定義窗口,右擊根節點,選擇“添加Binary表達式”;

    6.         第一個變量選擇companyLevel,操作符選擇“=”,第二個變量選擇level;

    7.         點擊“保存”按鈕,定制完畢。

     

    此時,可以在線測試該用戶分類是否有效。點擊“測試”標簽頁,選擇用戶進行測試。

     

    下圖示:(定制總公司用戶)


     

    下圖示:(測試總公司用戶分類,“柴其貴”測試結果)


     

    下圖示:(測試總公司用戶分類,“李朵朵”測試結果)


     

    通過,復制方式快速定制“分公司用戶”和“營業部用戶”兩個用戶分類。具體過程在此不做敘述。

    細粒度權限設置

    Metadmin專業細粒度權限管理中間件,強大優勢表現為:

    1.         完全將權限邏輯從業務系統中分離出來,且通過界面,引導開發人員配置出權限邏輯;

    2.         這些權限邏輯可以在線測試;

    3.         采用分類機制,免去了業務系統里面if else判斷,并且非常直觀地在權限設計器展現出本系統的權限邏輯;

     

    按照如下步驟完成最后一步定制過程,(整個過程看起來比較長,熟練后3分鐘即可定義完畢):

    1.         在“權限”分類欄,新建“查詢員工”權限,輸入相關信息;

    2.         點擊“查詢員工”權限;

    3.         點擊“新增”圖標,給查詢授權,新增3條授權策略,如下圖示。

    4.         點擊“保存”圖標。

     

    下圖示:“查詢員工”細粒度授權規則:


     

    此時,可以點擊“測試查詢授權”標簽頁,選擇用戶進行測試。

    與業務系統集成

    一般情況下,開發者會采用String常量形式引用權限,而不是int型權限id

    可以點擊權限分類欄上面的,“導出”圖標,導出常量。將常量保存到業務系統常量類。

     

    業務系統,不管是jsp/servlet/manager或者任意其他地方,需要調用該權限,獲取當前用戶能查詢到的員工。調用MetadminService.query( Privilege.QUERY_EMPLOYEE, user, null ),即可獲得user能查詢到的員工數據集合(java.util.Collection),每個元素類型是org.back.demo.Employee,在設計SQL時輸入的映射類。

    Metadmin提供了很多查詢接口,還有分頁、自定義查詢和查詢數據條數等,詳情參加javadoc http://www.metadmin.com/doc/javadoc/index.html

     

    posted on 2009-06-21 21:47 細粒度權限管理 閱讀(2122) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 香港经典a毛片免费观看看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲午夜成激人情在线影院| 美女网站在线观看视频免费的| 一本色道久久88亚洲综合| 国产亚洲av人片在线观看| 午夜在线亚洲男人午在线| 久视频精品免费观看99| 国产猛烈高潮尖叫视频免费| 亚洲精品国产精品乱码不99 | 亚洲人成综合网站7777香蕉| 成人免费午夜无码视频| 亚洲区不卡顿区在线观看| 亚洲国产福利精品一区二区| 免费观看无遮挡www的小视频| 亚洲区视频在线观看| 毛片免费观看网站| 亚洲AV日韩AV永久无码色欲| 免费h成人黄漫画嘿咻破解版| 日韩一区二区三区免费播放| 国产亚洲美日韩AV中文字幕无码成人 | 成人片黄网站A毛片免费| 亚洲Av永久无码精品三区在线| 亚洲综合色婷婷在线观看| 精品多毛少妇人妻AV免费久久| 亚洲综合国产精品第一页| 久久亚洲AV成人无码国产最大| 国产在线19禁免费观看国产| 人碰人碰人成人免费视频| 亚洲免费观看视频| 污网站在线免费观看| 亚洲色精品vr一区二区三区| 99在线观看免费视频| 亚洲三区在线观看无套内射| 99热免费在线观看| 精品亚洲国产成人av| 亚洲人成无码网WWW| 在线观看www日本免费网站| 亚洲成a人片在线不卡一二三区| 亚洲精品国精品久久99热| 免费国产在线视频|