很早就完成了權限系統的編碼,這里把一些功能說明貼出來,也希望提提意見。
權限系統基于acegi框架實現了從前端頁面到后臺數據全面的控制。在權限控制中,它將權限分成五類:??
? 一是系統權限,主要是對模塊為單位的權限劃分,具體就是用戶對該模塊可見不可見,能不能對該模塊進行再授權的操作。表現在用戶界面就是用戶登錄系統主頁面后,可以看到的頂部菜單和左側outlookbar菜單的內容控制。作為粒度最大的權限控制,系統實現了web url的防盜鏈功能。舉例來說,用戶新開發的一個叫車輛管理的模塊,配置在http://localhost/business/carmanage.action的url下,當對這個模塊的權限加以控制后,直接在瀏覽器中鍵入http://localhost/business/carmanage.action同樣是無法訪問的,而不僅僅是界面內容的屏蔽。
? 二是模塊操作權限,在對整個模塊的權限做出控制后,這里繼續對模塊的瀏覽、增加,修改,刪除的操作權限做出控制,也可以理解為對象權限?。還是以車輛管理為例,不同的人員對這個模塊的操作是不同的,有些用戶可以新增,刪除車輛;而有些用戶則只是可以對車輛的情況查看不能修改。通過系統提供的一套web 標簽,頁面可以根據用戶不同的操作權限屏蔽相應的功能按鍵。例如刪除,新增按鍵。用戶繞過頁面直接操作相應業務方法同樣也做到了嚴格的控制,沒有權限的訪問會被拒絕同時記入日志。?
? 三是數據范圍權限,又可以叫做對象實例級權限。事實上不是每個用戶都可以看到所有記錄的。以財務管理為例,部門經理只能查看金額小于1W的數據;而總經理則沒有限制。權限系統對這部分權限也做出了全面的控制,可以根據數據類型,相應字段數值范圍做出控制。
? 四是單條數據ACL權限,為了滿足更嚴格的數據權限要求,權限系統對數據實現了單條數據的ACL權限,具體說就是對每條數據都實現了權限控制,每條數據都有一到多條權限數據與其對應。以個人通訊錄為例,每個用戶都維護自己的一個通訊錄,這些數據都只是對本人可見,其他人不可見。但用戶可以對這些數據做出授權,將某條聯系方式以授權的方式共享給其他人,并賦予不同的權限,包括擁有,修改,刪除,瀏覽四種權限。
五是數據字段權限,通過xml配置,系統保證了用戶的最小粒度的權限控制。每條業務數據權限可以精確控制到每一個字段。包括單個字段的可否瀏覽以及可否修改。保證了敏感信息的安全性。
授權,作為權限系統的重要部分,系統提供了相當方便的操作體驗。以樹狀的方式展現權限主體(用戶,角色,部門)以及資源,方便,直接,一目了然。區別與傳統的RBAC模型,權限不僅僅可以分配給角色,也可以分配給部門和用戶。實際的權限是這三者權限的疊加,最大限度的方便用戶操作。考慮到用戶的擴展,系統提供兩個權限繼承規則接口,用戶可以自定義權限繼承的規則。例如,部門A下有部門A1,部門A的權限是否由部門A1繼承。
整個權限系統的數據都建立在系統統一的緩存管理之上,用戶登錄后,其權限信息即被緩存,保證系統的效率http://www.tkk7.com/ronghao 榮浩原創,轉載請注明出處:)
posted on 2007-03-18 22:46
ronghao 閱讀(4943)
評論(5) 編輯 收藏 所屬分類:
權限相關