posts - 9,comments - 6,trackbacks - 0
          在權限系統中,我定義了兩種類型的權限:

          1. 概念
          說明

             A 系統級權限從角色的角度出發,不特定于任何實際的資源的權限。比如“用戶是否可以修改標題”這個權限,不針對于任何特定的標題。權限賦予給某個特定的角色。采用RBAC模型實現

             B 對象級權限從對象實例的角度出發。比如針對于某個特定的標題,編輯在這個標題上的權限。采用ACL模型實現。
             那么判斷用戶是否可以修改某條的標題的判斷順序如下:
             1) 用戶所屬的角色是否擁有“修改標題”的權限
             2) 用戶或者用戶組是否在某條標題的的ACL列表當中

          2. RBAC權限部分的表結構說明

          1)系統權限(Permission)

          系統權限列表

          名稱

          定義

          說明

          id

          bigint

          主鍵,系統權限id

          name

          varchar

          名稱

           

          2) 角色(Role)

          角色表

          名稱

          定義

          說明

          id

          bigint

          主鍵,角色id

          name

          varchar

          名稱

           

          3) 授權(authorities)

          給某個角色授予多項系統級權限

          名稱

          定義

          說明

          id

          bigint

          主鍵,id

          roleid

          bigint

          角色id

          permissionid

          bigint

          權限id


          4) 用戶組成員(memeberships)

          用戶組以及用戶組成員

          名稱

          定義

          說明

          id

          bigint

          主鍵,用戶id

          groupid

          bigint

          用戶組id

          userid

          bigint 用戶id
          roleid

          bigint

          角色id

          3. RBAC權限部分的關系說明

            用戶和角色:用戶和角色是多對多的關系。但是在授予某個用戶某個角色的時候,是以用戶組為單位的。比如用戶A在用戶組1中可能是“管理員”的角色,但是在用戶組2中就可能是“普通用戶”的角色。這種劃分在業務系統中比較通用。當然,具體到一個用戶,使用哪個用戶組的角色來做判斷,是由業務來決定的。

            角色和系統級權限:是一個一對多的關系。通過授權來完成。當然在授權之前,需要把需要使用的系統及權限注射到數據庫的permission表。
           
          (夜露死苦)



          posted on 2009-02-10 12:49 夜露死苦 閱讀(1969) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 澎湖县| 项城市| 永胜县| 河间市| 神池县| 广汉市| 新闻| 宁乡县| 沙坪坝区| 湘阴县| 筠连县| 昭觉县| 西昌市| 鱼台县| 怀集县| 宁津县| 睢宁县| 密云县| 玛纳斯县| 渭南市| 东阳市| 九龙城区| 龙陵县| 东安县| 左云县| 区。| 周口市| 阜康市| 长沙市| 化德县| 卓尼县| 郑州市| 合山市| 家居| 明溪县| 广南县| 禄劝| 阳高县| 襄汾县| 磐石市| 安义县|