posts - 297,  comments - 1618,  trackbacks - 0
              在前兩篇文章中,不少朋友對我的設計提出了異議,認為過于復雜,當然在實際的各種系統的權限管理模塊中,并不像這里設計得那么復雜,我以前所做的系統中,由只有用戶和權限的,有只有用戶、權限和角色的,還有一個系統用到了用戶、權限、角色、組概念,這個系統是我在思考以前所做系統的權限管理部分中找到的一些共性而想到的一個設計方案,當然還會有不少設計不到位的地方,在設計開發過程中會慢慢改進,這個系統權當學習只用,各位朋友的好的建議我都會考慮到設計中,感謝各位朋友的支持。
              今天抽時間整了一份概念設計出來,還有一些地方尚未考慮清楚,貼出1.0版,希望各位朋友提出寶貴建議。
              大家也可以點擊此處《通用權限管理概要設計說明書》自行下載,這是1.0版本,有些地方可能還會進行部分修改,有興趣的朋友請關注我的blog。
               

          1.      引言

          1.1 編寫目的

          本文檔對通用權限管理系統的總體設計、接口設計、界面總體設計、數據結構設計、系統出錯處理設計以及系統安全數據進行了說明。

          1.2 背景

          a、 軟件系統的名稱:通用權限管理系統;

          b、 任務提出者、開發者:謝星星;

          c、 J2EEweb系統中需要使用權限管理的系統。

          1.3 術語

          本系統:通用權限管理系統;

          SSH:英文全稱是Secure Shell

          1.4 預期讀者與閱讀建議

          預期讀者

          閱讀重點

          開發人員

          總體設計、接口設計、數據結構設計、界面總體設計、系統出錯處理設計

          設計人員

          總體設計、接口設計、數據結構設計、系統安全設計

          1.5 參考資料

          《通用權限管理系統需求規格說明書》

          《通用權限管理系統數據庫設計說明書》

          2.      總體設計

          2.1 設計目標

          權限系統一直以來是我們應用系統不可缺少的一個部分,若每個應用系統都重新對系統的權限進行設計,以滿足不同系統用戶的需求,將會浪費我們不少寶貴時間,所以花時間來設計一個相對通用的權限系統是很有意義的。

          本系統的設計目標是對應用系統的所有資源進行權限控制,比如應用系統的功能菜單、各個界面的按鈕控件等進行權限的操控。

          2.2 運行環境

          操作系統:Windows系統操作系統和Linux系列操作系統。

          2.3 網絡結構

           通用權限管理系統可采用Java Swing實現,可以在桌面應用和Web應用系統中進行調用。如果需要要適應所有開發語言,可以將其API發布到WEB Service上。暫時用Java Swing實現。

          2.4 總體設計思路和處理流程

          在說明總體設計思路前,我們先說明本系統的相關概念:

          1. 權限資源

          系統的所有權限信息。權限具有上下級關系,是一個樹狀的結構。下面來看一個例子

          系統管理

                  用戶管理

                         查看用戶

                         新增用戶

                         修改用戶

                         刪除用戶

          對于上面的每個權限,又存在兩種情況,一個是只是可訪問,另一種是可授權,例如對于“查看用戶”這個權限,如果用戶只被授予“可訪問”,那么他就不能將他所具有的這個權限分配給其他人。

          2. 用戶

          應用系統的具體操作者,用戶可以自己擁有權限信息,可以歸屬于0~n個角色,可屬于0~n個組。他的權限集是自身具有的權限、所屬的各角色具有的權限、所屬的各組具有的權限的合集。它與權限、角色、組之間的關系都是n對n的關系。

          3. 角色

          為了對許多擁有相似權限的用戶進行分類管理,定義了角色的概念,例如系統管理員、管理員、用戶、訪客等角色。角色具有上下級關系,可以形成樹狀視圖,父級角色的權限是自身及它的所有子角色的權限的綜合。父級角色的用戶、父級角色的組同理可推。

          4.

          為了更好地管理用戶,對用戶進行分組歸類,簡稱為用戶分組。組也具有上下級關系,可以形成樹狀視圖。在實際情況中,我們知道,組也可以具有自己的角色信息、權限信息。這讓我想到我們的QQ用戶群,一個群可以有多個用戶,一個用戶也可以加入多個群。每個群具有自己的權限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高級群等。

          針對如上提出的四種對象,我們可以整理得出它們之間的關系圖,如下所示:


          總體設計思路是將系統分為組權限管理、角色權限管理、用戶權限管理、組織管理和操作日志管理五部分。

          其中組權限管理包括包含用戶、所屬角色、組權限資源和組總權限資源四部分,某個組的權限信息可用公式表示:組權限 = 所屬角色的權限合集 + 組自身的權限。

          角色權限管理包括包含用戶、包含組和角色權限三部分,某個角色的權限的計算公式為:角色權限 = 角色自身權限。

          用戶權限管理包括所屬角色、所屬組、用戶權限、用戶總權限資源和組織管理五部分。某個用戶總的權限信息存在如下計算公式:用戶權限 = 所屬角色權限合集 + 所屬組權限合集 + 用戶自身權限。

          組織管理即對用戶所屬的組織進行管理,組織以樹形結構展示,組織管理具有組織的增、刪、改、查功能。

          操作日志管理用于管理本系統的操作日志。

          注意:因為組和角色都具有上下級關系,所以下級的組或角色的權限只能在自己的直屬上級的權限中選擇,下級的組或者角色的總的權限都不能大于直屬上級的總權限。

          2.5 模塊結構設計

          本系統的具有的功能模塊結構如下圖所示:

          2.6 尚未解決的問題

          無。

          3.      接口設計(暫略)

          3.1 用戶接口(暫略)

          3.2 外部接口(暫略)

          3.3 內部接口(暫略)

          4.      界面總體設計

          本節將闡述用戶界面的實現,在此之前對頁面元素做如下約定:

          序號

          頁面元素

          約定

          1

          按鈕

          未選中時:[按鈕名稱]

          選中時:[按鈕名稱]

          2

          單選框

          ○ 選項

          3

          復選框

          □ 選項

          4

          下拉框

           [選項,…,] ▽

          5

          文本框

           |________|

          6

          TextArea

           |…………|

          7

          頁簽

          未選中時:選項名稱

           選中時:選項名稱

          8

          未選中鏈接

          鏈接文字

          9

          選中鏈接

          鏈接文字

          10

          說明信息

          說明信息

           

          4.1 組權限管理

          4.1.1包含用戶

          組信息

             組1

                 組11

                 組12

                 組…

             組2

                 組21

                 組22

                 組…

           

          所選擇組:組1

          [包含用戶] [所屬角色] [組權限] [總權限]

          [修改]

          用戶名   姓名     手機號   最近登錄時間 登錄次數

          阿蜜果 謝星星 13666666666 2007-10-8    66

          sterning xxx    13555555555 2007-10-8    10 

          ……

          當用戶選擇“修改”按鈕時,彈出用戶列表,操作人可以通過勾選或取消勾選來修改該組所包含的用戶。

          4.1.2所屬角色

          組信息

             組1

                 組11

                 組12

                 組…

             組2

                 組21

                 組22

                 組…

           

          所選擇組:組1

          [包含用戶] [所屬角色] [組權限] [總權限]

          [修改]

          角色ID   角色名稱   角色描述

          1          訪客       --

             2         初級用戶    --

            

          當用戶選擇“修改”按鈕時,彈出角色樹形結構,操作人可以通過勾選或取消勾選來修改該組所屬的角色。

          4.1.3組權限

          組信息

             組1

                 組11

                 組12

                 組…

             組2

                 組21

                 組22

                 組…

           

          所選擇組:組1

          [包含用戶] [所屬角色] [組權限] [總權限]


                          [
          保存] [取消]

          4.1.4總權限

          組信息

             組1

                 組11

                 組12

                 組…

             組2

                 組21

                 組22

                 組…

           

          所選擇組:組1

          [包含用戶] [所屬角色] [組權限] [總權限]


                          [
          保存] [取消]

          通過對已具有的權限取消勾選,或為某權限添加勾選,來修改組的權限信息,點擊“保存”按鈕保存修改信息。

          4.1.5組管理

                 在下圖中,選中組1的時候,右鍵點擊可彈出組的操作列表,包括添加、刪除和修改按鈕,從而完成在該組下添加子組,刪除該組以及修改該組的功能。

          組信息

             組1

                 組11

                 組12

                 組…

             組2

                 組21

                 組22

                 組…

           

          所選擇組:組1

          [包含用戶] [所屬角色] [組權限] [總權限]

          [修改]

          用戶名   姓名     手機號   最近登錄時間 登錄次數

          阿蜜果 謝星星 13666666666 2007-10-8    66

          sterning xxx    13555555555 2007-10-8    10 

          ……

          4.2 角色權限管理

          4.2.1包含用戶

          角色信息

             角色1

                 角色11

                 角色12

                 角色…

             角色2

                 角色21

                 角色22

                 角色…

           

          所選擇角色:角色1

          [包含用戶] [包含組] [角色權限]

          [修改]

          用戶名   姓名     手機號   最近登錄時間 登錄次數

          阿蜜果 謝星星 13666666666 2007-10-8    66

          sterning xxx    13555555555 2007-10-8    10 

          ……

          當用戶選擇“修改”按鈕時,彈出用戶列表,操作人可以通過勾選或取消勾選來修改該角色所包含的用戶。

          4.2.2包含組

          角色信息

             角色1

                 角色11

                 角色12

                 角色…

             角色2

                 角色21

                 角色22

                 角色…

           

          所選擇角色:角色1

          [包含用戶] [包含組] [角色權限]

          [修改]

          組ID   組名稱     組描述

          1      xxx1       --

          2       xxx2        -- 

          ……

          當用戶選擇“修改”按鈕時,彈出用戶列表,操作人可以通過勾選或取消勾選來修改該角色所包含的組。

          4.2.3角色權限

          角色信息

             角色1

                 角色11

                 角色12

                 角色…

             角色2

                 角色21

                 角色22

                 角色…

           

          所選擇角色:角色1

          [包含用戶] [包含組] [角色權限]

                           
                         [
          保存] [取消]

          通過對已具有的權限取消勾選,或為某權限添加勾選,來修改角色的權限信息,點擊“保存”按鈕保存修改信息。

          4.2.4管理角色

                 在下圖中,選中組1的時候,右鍵點擊可彈出組的操作列表,包括添加、刪除和修改按鈕,從而完成在該組下添加子組,刪除該組以及修改該組的功能。

          角色信息

             角色1

                 角色11

                 角色12

                 角色…

             角色2

                 角色21

                 角色22

                 角色…

           

          所選擇角色:角色1

          [包含用戶] [包含組] [角色權限]

          [修改]

          用戶名   姓名     手機號   最近登錄時間 登錄次數

          阿蜜果 謝星星 13666666666 2007-10-8    66

          sterning xxx    13555555555 2007-10-8    10 

          ……

          4.3 用戶權限管理

          4.3.1所屬角色

          用戶權限信息

          xx公司

             廣州分公司

                 阿蜜果

                 肖xx

                 yy…

             北京分公司

                 zz1

                 zz2

                 zz3…

           

          所選擇用戶:阿蜜果

          [所屬角色] [所屬組] [用戶權限] [總權限]

          [修改]

          角色ID   角色名稱   角色描述

          1          訪客       --

             2         初級用戶    --

          當用戶選擇“修改”按鈕時,彈出角色樹形結構,操作人可以通過勾選或取消勾選來修改該用戶所屬的角色。

          4.3.2所屬組

          用戶信息

          xx公司

             廣州分公司

                 阿蜜果

                 肖xx

                 yy…

             北京分公司

                 zz1

                 zz2

                 zz3…

           

          所選擇用戶:阿蜜果

          [所屬角色] [所屬組] [用戶權限] [總權限]

          [修改]

          組ID   組名稱     組描述

          1       組1         --

             2       組2         --

          當用戶選擇“修改”按鈕時,彈出組的樹形結構,操作人可以通過勾選或取消勾選來修改該用戶所屬的組。

          4.3.3用戶權限

          用戶信息

          xx公司

             廣州分公司

                 阿蜜果

                 肖xx

                 yy…

             北京分公司

                 zz1

                 zz2

                 zz3…

           

          所選擇用戶:阿蜜果

          [所屬角色] [所屬組] [用戶權限] [總權限]

                           
                          [
          保存] [取消]

          通過對已具有的權限取消勾選,或為某權限添加勾選,來修改用戶的權限信息,點擊“保存”按鈕保存修改信息。

          4.3.4總權限

          用戶信息

          xx公司

             廣州分公司

                 阿蜜果

                 肖xx

                 yy…

             北京分公司

                 zz1

                 zz2

                 zz3…

           

          所選擇用戶:阿蜜果

          [所屬角色] [所屬組] [用戶權限] [總權限]

                           
                          [
          保存] [取消]

          通過對已具有的權限取消勾選,或為某權限添加勾選,來修改用戶的權限信息,點擊“保存”按鈕保存修改信息。

          4.3.5用戶管理

                 當選擇了某用戶時,點擊右鍵,彈出菜單列表:修改、刪除、取消,點擊修改和刪除按鈕可以實現用戶的刪除和修改功能。

                 選擇某個組織,例如下表中的“廣州分公司”,彈出菜單列表:添加子組織、刪除組織、修改組織、添加用戶、取消,點擊添加用戶按鈕可以實現用戶的添加功能。

          用戶權限信息

          xx公司

             廣州分公司

                 阿蜜果

                 肖xx

                 yy…

             北京分公司

                 zz1

                 zz2

                 zz3…

           

          所選擇用戶:阿蜜果

          [所屬角色] [所屬組] [用戶權限] [總權限]

          [修改]

          角色ID   角色名稱   角色描述

          1          訪客       --

             2         初級用戶    --

          4.3.6組織管理

                 選擇某個組織,例如下表中的“廣州分公司”,彈出菜單列表:添加子組織、刪除組織、修改組織、添加用戶、取消,點擊添加子組織、刪除組織、修改組織按鈕可以實現組織的添加、刪除和修改功能。

          用戶權限信息

          xx公司

             廣州分公司

                 阿蜜果

                 肖xx

                 yy…

             北京分公司

                 zz1

                 zz2

                 zz3…

           

          所選擇用戶:阿蜜果

          [所屬角色] [所屬組] [用戶權限] [總權限]

          [修改]

          角色ID   角色名稱   角色描述

          1          訪客       --

             2         初級用戶    --

          4.4 操作日志管理

          4.4.1查詢操作日志

          操作名稱:|________|  操作人:|________|

          操作時間從 |________| 到 |________| [查詢] [重置] [刪除]

          編號    操作名稱    操作內容    操作人    操作時間

          1        xx1         --        Amigo    2007-10-8

          2        xx2         --        xxyy     2007-10-8

          輸入上圖表單中的查詢信息后,點擊“查詢”按鈕,可查詢出符合條件的信息。

          4.4.2刪除操作日志

          操作名稱:|________| 操作人:|________|

          操作時間從 |________| 到 |________| [查詢] [重置] [刪除]

          編號    操作名稱    操作內容    操作人    操作時間

          1        xx1       --           Amigo      2007-10-8

          2        xx2       --           xxyy       2007-10-8

          輸入上圖表單中的查詢信息后,點擊“查詢”按鈕,可查詢出符合條件的信息。而后點擊“刪除”按鈕,可刪除符合查詢條件的操作日志。

          5.      數據結構設計

          數據庫設計的模型請參見《通用權限管理系統_數據庫模型.pdm》。表的說明請參見《通用權限管理系統數據庫設計說明書》。

          5.1 設計原則

          5.1.1命名的規范

          數據庫中表、主鍵、外鍵、索引的命名都以統一的規則,采用大小寫敏感的形式,各種對象命名長度不要超過30個字符,這樣便于應用系統適應不同的數據庫平臺。

          5.1.2數據的一致性和完整性

          為了保證數據庫的一致性和完整性,往往通過表間關聯的方式來盡可能的降低數據的冗余。表間關聯是一種強制性措施,建立后,對父表(Parent Table)和子表(Child Table)的插入、更新、刪除操作均要占用系統的開銷。如果數據冗余低,數據的完整性容易得到保證,但增加了表間連接查詢的操作,為了提高系統的響應時間,合理的數據冗余也是必要的。使用規則(Rule)和約束(Check)來防止系統操作人員誤輸入造成數據的錯誤是設計人員的另一種常用手段,但是,不必要的規則和約束也會占用系統的不必要開銷,需要注意的是,約束對數據的有效性驗證要比規則快。所有這些,需要在設計階段應根據系統操作的類型、頻度加以均衡考慮。

          5.2 數據庫環境說明

          數據庫:MySql5.0

          設計庫建模工具:PowerDesigner12.0

          5.3 數據庫命名規則

          表名以T開頭,外鍵以FK開頭,索引以INDEX開頭。

          5.4 邏輯結構

          pdm文件的名稱為:《通用權限管理系統_數據庫模型》。

          5.5 物理存儲

          通過數據庫建模工具PowerDesigner12可以將pdm導出為文本文件,將數據庫腳本放入文本文件中保存。

          5.6 數據備份和恢復

          數據庫需定期備份(每天備份一次),備份文件格式為backup_yyyyMMdd,數據庫被破壞時,利用最新的備份文件進行恢復。

          6.      系統出錯處理設計

          6.1 出錯信息

          錯誤分類

          子項及其編碼

          錯誤名稱

          錯誤代碼

          備注

          數據庫錯誤

          連接

          連接超時

          100001001

          連接斷開

          100001002

          數據庫本身錯誤代碼

          數據庫本身錯誤代碼

          100002+數據庫錯誤代碼

          TCP連接錯誤

          連接

          連接超時

          101001001

          連接斷開

          101001002

          其它TCP連接錯誤(socket自身錯誤代碼)

          101002+ socket錯誤代碼

          配置信息錯誤

          未配置輸入參數

          102001

          未配置輸出參數

          102002

          組管理部分自定義錯誤

          103001——103999

          角色管理部分自定義錯誤

          104001——104999

          用戶管理部分自定義錯誤

          105001——105999

          操作日志管理

          106001——106999

          6.2 補救措施

          為了當某些故障發生時,對系統進行及時的補救,提供如下補救措施:

          a.后備技術   定期對數據庫信息進行備份(每天一次),當數據庫因某種原因被破壞時,以最新的數據庫腳本進行恢復;。

          7.      系統安全設計

          7.1 數據傳輸安全性設計

          SSH可以通過將聯機的封包加密的技術進行資料的傳遞; 使用SSH可以把傳輸的所有數據進行加密,即使有人截獲到數據也無法得到有用的信息。同時數據經過壓縮,大大地加快了傳輸的速度。通過SSH的使用,可以確保資料傳輸比較安全并且傳輸效率較高。

          7.2 應用系統安全性設計

          操作人的操作信息需要提供操作記錄。對系統的異常信息需進行記錄,已備以后查看。只有授權用戶才能登錄系統,對于某個操作,需要具有相應權限才能進行操作。

          7.3 數據存儲安全性設計           

          對于用戶的密碼等敏感信息采用MD5進行加密。

          posted on 2007-10-08 15:57 阿蜜果 閱讀(61735) 評論(64)  編輯  收藏 所屬分類: Open Source


          FeedBack:
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-08 16:09 | Interk6536
          lzmm快25歲了,我也快25歲了,并且屬于同一行業,但成就遠不如lzmm,就拿你做為學習的榜樣吧!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-08 16:52 | BeanSoft
          你太厲害了啊! 真是可惜了這么好的一個MM啊!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-08 17:23 | 千里冰封
          真是太厲害了,佩服佩服啊  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-08 19:23 | mingj
          文檔還是挺不錯的
          收藏做模版,謝謝lz了  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-08 19:37 | apple0668
          學習了,支持!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-08 21:41 | jezz
          非常的清晰,佩服,正在朝這個方面努力!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-08 22:30 | leekiang
          雖然還有很多地方需要改進,但思路非常清晰,表達得很清楚。好妹妹!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-08 22:34 | lvyf
          實在是太有才了。。。。
          佩服佩服。。。
          慚愧慚愧。。。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-08 22:39 | 太陽里的雪
          樓主是不是好象少考濾了一樣東西:資源  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-09 08:49 | cerulean
          支持!!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-09 09:33 | Samuel
          標準的設計文檔模板,希望能夠繼續深化下去。我將關注中  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-09 10:33 | cssseek
          真是一位才女,最近也在為權限設計,關注中....  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-09 10:34 | quietywind
          難道博主是在中航信工作?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-09 10:40 | 阿蜜果
          @ quietywind
          沒有啊  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-09 10:50 | quietywind
          哦 看文檔里面截圖的例子都是航班訂座或售票相關的東西,還以為是中航信的呢 :)  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-09 11:59 | 阿蜜果
          @ quietywind
          是在網上弄的一個圖片來冒充的,哈哈  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-11 09:26 | 愷撒之吻
          設計的很多不合理,雖然體現了RABC的設計精神,但太過于死板,很明顯的可以看出,組和角色是重復的,應該再進行細劃,區別出組和角色,比如組只能包含角色,而不涉及具體的權限分配,從這點上可以說組就是角色權限組.還有實際的管理系統中人員是屬于哪個部門的,并沒有在權限系統中體現,可能可以說部門可以用角色來模擬,顯然,角色是個抽象的東西,他適用于系統所有的文件,把他歸結為某個部門顯然是違背設計的初衷的,就說這么多了。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-11 09:32 | 愷撒之吻
          補充一點:既然是基于角色的權限管理系統,那么用戶實際上是歸于某個具有某個權限的角色后才具有某個權限,所以,用戶沒有自己的權限.故 "應用系統的具體操作者,用戶可以自己擁有權限信息,可以歸屬于0~n個角色,可屬于0~n個組。"敘述的不合理,  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-11 09:36 | 阿蜜果
          @愷撒之吻
          針對“還有實際的管理系統中人員是屬于哪個部門的,并沒有在權限系統中體現”這個問題,請看下我上篇的數據庫設計,是由組織這個表的,在這篇文章中也有提及,請仔細看看。
          對于組和角色的問題,我覺得可以參考QQ,它的普通群、高級群可以與這里的角色相對應,每一個群可以對應于我們這里的組的概念,在此處看來,組當然會有他們自己的權限。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-11 09:39 | 阿蜜果
          @愷撒之吻
          我并沒有說這是基于角色的權限管理系統,如果是的話,設計大可以簡化。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-11 11:07 | 愷撒之吻
          @阿蜜果
          對于QQ群,我想他是一種部門,具體的群是個具體部門,具體部門也有部門的組和角色,比如管理員和普通用戶而并不是你說的那個角色的概念.  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-11 11:12 | 愷撒之吻
          @阿蜜果
          所以通用的權限系統是依附于部門,通過角色來訪問.  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-16 17:03 | wayne
          你那個總權限又是做什麼用的  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-24 15:50 | 威威
          MM,你好棒哦  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-25 14:48 | 獨自私奔
          你的設計很不錯,我想提一個問題,你的組與角色有沒有什么隸屬關系.看了你的設計后我沒有感到他們有什么聯系,只存在簡單的N~N的關系,對于你的這種設計我只能理解出是互包含,不知你在設計時是如何考慮他們的業務聯系的?看到你的數據庫設計時,我理解你最終要做的是用戶與功能點的對應關系.不知這么理解對不對,你所引入的角色和組都是用來管理功能點的一種附助手段  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-25 14:54 | 阿蜜果
          我現在的設計時組可以包含多個角色,而一個角色可以屬于多個組,所以這兩者之間是N~N的關系。
          引用:看到你的數據庫設計時,我理解你最終要做的是用戶與功能點的對應關系.不知這么理解對不對,你所引入的角色和組都是用來管理功能點的一種附助手段
          恩,你所理解的就是我所想的。其實到最后還是用戶與功能點的對應關系  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-10-30 17:46 | jimmy lin
          to 阿蜜果
          還沒完成coding嗎?我每天來看的哦~ 期待你開放code~  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-10-31 08:46 | 阿蜜果
          @jimmy lin
          我都沒開始coding啊

          給個設計思路就差不多了啊
          最近需要忙的私事太多了  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-11-07 09:52 | jimmy lin
          @阿蜜果
          UI控制上我不清楚怎么控制好呢?
          比如一個user他能編輯頁面上的一部份form項,但是其它的不能由他來填寫。這個一般要怎么控制呢?不能在view上看到這些硬code吧。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2007-11-07 09:58 | 阿蜜果
          @jimmy lin
          恩,這個是不太好處理的,你可以將它做成一個自定義標簽,我現在是這樣做的,不過還是覺得不夠好  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-11-07 12:10 | jimmy lin
          @阿蜜果
          然后在這個自定義標簽上接受權限規約來定義這個標簽的狀態?
          這樣的話,感覺上這個標簽就不通用了。對嗎?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-11-07 12:15 | 阿蜜果
          怎么會不通用呢,你只是傳入一個登錄名進去的,還好吧,不過總覺得不是很好的方法,不知道其他人有無好辦法  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-11-07 17:44 | 季候風
          對應權限的判斷邏輯是怎么樣的呢?
          會不會很復雜?
          另外對于一個組信息里面的總權限不明白是干嘛用的?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2007-11-19 16:40 | chiyanlin
          很佩服您,您的通用權限管理系統的設計思想也讓我學到了很多,在這里我也想和您提一下我的一點不成熟的想法,我覺得還可以做的更抽象些,在一個實際的系統管理中,組可以看成是對資源的縱向拆分,而角色可以看成是對資源的橫向拆分,舉個例子,一個公司由很多個部門組成,這里的部門就可以看成是“組”的概念,是縱向的拆分,而這個公司又是由管理員和普通員工組成,是“角色”的概念,是橫向的拆分。這樣是不是可以把“角色”和“組”這兩個概念和在一起,再抽象一下,就是讓用戶自己去設計他想在系統中對資源怎樣拆分,用戶可以給他想要添加的拆分方法起一個名字叫“角色”,也可以叫”組“,也可以叫”部門“,或者別的什么,這樣在數據庫里需要用的一個總的方法表來記錄用戶添加的拆分方法,然后還要一個記錄詳細信息的表(就是把您設計的角色表和組表和起來),根據不同的分法,可以到這個詳細信息表里取出相對于這種分法的記錄集合,然后再像您介紹的那樣繼續設計下去。這樣如何拆分,按”角色“,”部門“,”組“,”職位“,或者別的,完全由用戶自己設計。當然,這只是我個人的一點想法,僅供參考。我現在也在權管理這塊的開發,看了你的文章,確實學到很多,再次感謝您  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-01-07 10:57 | ryuu
          我現在在做一個系統,一個類似信息發布的東東,本來也無所謂,可沒想到用戶提出了許多BT的要求,尤其是權限方面,本來照我的常規思維,這種東東一般也就是劃分幾個角色,劃分幾個信息的發布模塊等等也就行了,甚至公司都有現成的東西直接用。
          可沒想到客戶的要求比較刁鉆。我先說說系統的大概模樣。
          信息發布嗎,首先當然要劃分信息的類別和層次,而這層次是不定的,可能是兩三層,也可能是十層、八層(沒這么變態吧^_^),其實就類似與windows的資源管理器的樣式,目錄里面含著文件,而文件又有可能和目錄平級的說,這是顯示方面大概要顯示的東東。現在說說他們在權限控制方面的要求,某個用戶登錄系統之后,這些目錄文件(使用的是資源管理器類似的樣式,左邊一顆樹,右邊基本信息列表)將需要根據用戶權限的不同而不同(有的目錄文件顯示,有的不顯示的說),當然對于不同的記錄用戶也需要有不同的增刪改權限,列表雖然都能看見,不過有的記錄他可以修改卻不可以刪除,有的卻連修改都不許了,當然還有其他的一下操作方式的控制。更為變態的是,要求點擊某條記錄(或目錄、或文件)時彈出的信息查看頁面對于不同權限的用戶也需不同,即某些字段可以顯示,某些字段不能顯示(my god,還是把我回收了得了),這就要求在后臺的管理方面有著靈活的操作,當然用戶也要求了,本著易用性的原則,管理員可以適當選擇是對一條條記錄賦權還是對一批記錄賦權。

          說了這么多,不知道你能否看明白?

          我開始的想法是定義組,將某些權限相同的用戶賦為一組,然后對記錄賦權時根據組進行選擇而不用對每個人進行選擇,這樣就不需對個人進行操作(即使一個人也給他搞個組),這樣對組配置改組可以對記錄有那些權限,可以顯示記錄的那些字段,然后針對記錄選擇組(一個用戶可能屬于多個組,如有重復,則以用戶能獲得的最大權限為主)。
          不過后來一想,加入某些記錄只是針對個人的,如果也這么做的話,會死人的啊,組的數量就太多了。
            回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-01-17 16:21 | BoyLong
          如果用單位來對應權限,然后讓用戶、角色、組來對應單位中的權限,這種實現會不會更簡單一些  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-01-24 16:26 | 咖啡屋的鼠標
          看著這個頭痛,我干了好幾個月的這個東西,Amigo你可以試著兼容LDAP。那就跟我差不多一樣痛苦了。唉  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-01-25 15:29 | 嗯哪
          基于用戶、用戶組、角色都可以進行資源授權這一事實,是否可以考慮抽象出一個授權單位的虛擬對象,而用戶、用戶組、角色,都是這個虛擬對象的具體實現。這樣,樓主的授權模型就得以簡化,變成:虛擬授權對象--權限 + 虛擬授權對象之間的包含關系 。
          當然,由于用戶、用戶組、角色本來還具有自己的特殊屬性,這三個實體數據表時不能省略的,但是,對象之間的關系表變得簡單了,代碼也相應簡化。同時,由于“一切都等同于角色”這樣的概念,系統將具有更好的可擴展性,比如,將來增加一個用戶級別或職務之類的概念,就可以同用戶組之類的概念等同處理,因為用戶級別或職務也可以看作角色(授權對象)。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-02-27 10:20 | well
          感覺比較不錯,伸縮性很強,靈活性很好
          可以隨時抽調一個主表,比如:組
          就可以用來實現基于角色的權限
          確實可通用  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-03-03 00:02 | ericwang
          樓主,接下來還有繼續嗎?!!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-03-06 21:09 | AI3
          本人菜鳥一個,有個很菜的問題請教.做這個權限管理模塊,用戶界面用JAVA實現,數據存儲那些必須放在數據庫里面嗎?如果用戶沒有安裝任何數據庫怎么辦呢?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-03-26 13:10 | baidw
          學習呀,真是高!!
          希望有時間多向你學習!!!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-04-18 14:06 | mechecksv
          圖上的訪問與管理如果遇到細致化分如何處理?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2008-07-03 10:45 | 骷髏
          俺雖然不是做JAVA的,現在正在頭痛做這個問題。
          謝謝,你這個給了我一定的啟發。你這個權限管理的思路很好,可是不夠細,不一定能滿足客戶的要求。
          比如我現在這個項目的權限要求要做到單元格一級的控制。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2008-09-05 20:45 | 大鳥
          @jimmy lin
          可以將要顯示的項存儲在數據庫啊,在庫中規定具有特定權限的用戶才可以對其進行相應的操作  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-09-09 15:44 | 18
          妹妹 你有男朋友了嗎?我想追你  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-11-14 14:10 | libaiyu
          用戶權限管理還真是一大頭疼問題,幾乎每個系統都或多或少改一些,有沒有更妙的處理方式?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-12-30 02:19 | 李宏
          不錯
          借鑒下
          不過偶用.net來實現。。。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2008-12-31 14:45 | cccc
          @AI3
          my god  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2009-01-04 09:31 | xieliang
          不錯,不錯,確實在菜單管理這樣的權限設計比較通用了,但是似乎妹妹只貼出了菜單管理的權限,沒有資源管理的權限,呵呵  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2009-01-09 01:27 | chenkaige
          天下掉下來你這個MM!
          還讓人活嗎?同樣是同行阿.......  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2009-01-15 15:31 | 龍在江湖
          不錯好多!  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2009-03-18 19:59 | 學習者
          看了你的東東,我都不想學java了,啥子能達到你的境界呢??  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2009-08-19 21:04 | 清晨迷霧
          我想你真是個好人,寫得很好,對我很有有幫助.還提供文檔下載,非常感謝.

          http://www.vouov.com  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2009-09-23 10:56 | it `s me
          樓主真厲害,我正在搞人事權限管理系統,畢業設計!可無從下手!樓主加我QQ指教指教632593234  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2010-05-03 02:50 | 雨傘
          lzmm,你好,請問說明書里面的帶多個復選框的目錄樹怎么實現的?  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2011-05-26 22:33 | mar2008
          一直在找權限設計的資料,非常感謝博主的分享 ^^  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2013-04-08 15:12 | z
          樓主大才,但怎么沒寫第四篇?嗚嗚  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2013-09-17 10:06 | 無聲
          不對啊,下載下來是三星手機使用說明啊  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2013-10-30 14:57 | hoei
          @愷撒之吻
          部門就是組,組就是部門。這樣理解可以吧。otherpart給對于外來訪客使用。
            回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2013-11-25 15:43 | muge
          如果我是公司的老板后者高管,我可能會提出給一個人增加一個權限,如果照很多朋友的看法,那就得新建一個角色了,完全沒必要。
          設計時要從使用人的視角來看問題,規范的設計固然好,但會給操作帶來麻煩;靈活的東西固然負責,可以把它當成基礎設計,至于組是否應該直接具備權限,可以看成業務邏輯。所以在最基礎之上的東西可以智者見智,不必拘泥于一種形式,但最基礎的東西就應該簡單靈活,它的使用時有一定門檻的,否則就會用的一塌糊涂。
          樓主的設計不錯。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2013-11-25 16:01 | muge
          其實不用這么糾結,這是一個通用的東西,在具體業務實現是,用戶可以直接對權限,角色也可以直接對權限,用不用可以由實現業務的人自己選擇。
          就是說,這里提供了多種方法,具體業務邏輯采用哪種或哪幾種,是實現具體業務邏輯的人需要決定的。  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書[未登錄]
          2013-12-04 16:46 | a
          要是粘貼的 就艸尼瑪 各種一樣的  回復  更多評論
            
          # re: 通用權限管理系統設計篇(三)——概要設計說明書
          2014-04-20 16:29 | d
          d  回復  更多評論
            
          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

                生活將我們磨圓,是為了讓我們滾得更遠——“圓”來如此。
                我的作品:
                玩轉Axure RP  (2015年12月出版)
                

                Power Designer系統分析與建模實戰  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          關注blog

          積分與排名

          • 積分 - 2293850
          • 排名 - 3

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 同江市| 大港区| 平谷区| 高碑店市| 巨鹿县| 常州市| 芷江| 静宁县| 称多县| 贡觉县| 东明县| 临夏县| 扬州市| 威信县| 吴桥县| 常宁市| 琼结县| 黎平县| 南木林县| 绥棱县| 阿城市| 松滋市| 鄢陵县| 榆林市| 于田县| 南雄市| 原阳县| 平原县| 大宁县| 玉溪市| 乐陵市| 福建省| 山西省| 泸水县| 兴山县| 阳春市| 扎鲁特旗| 桐乡市| 贵德县| 庄河市| 辉县市|