Vincent Thinking

          All about Vincent's work and life

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 0 文章 :: 183 評論 :: 0 Trackbacks
          對于每個系統(tǒng)來說,權限都是一個很重要的組成部分,貫穿于整個系統(tǒng)功能,甚至包括數據。RBAC是一個很好的模型,對于復雜的處理更多的還是和業(yè)務緊密聯系在一起,所以對于組件形式的RBAC產品還很難做到的。 對一個用戶來說,權限主要包括2個部分,data和action,其組合形式對我們來說就是一個view,每個權限對應一個相應的view。在這里我用三維的坐標來思考,data和action是相應的x,y軸,不同的data,action組成一個業(yè)務視圖,從三維的角度來看是一個2維的的平面,我們的系統(tǒng)功能也就是由不同的平面來做成的。 權限可以看作z軸,view在不同的權限上會有不同的表現形式,展現不同的數據,不同的操作。這樣權限,數據,操作看起來就會清晰很多。 我所設想的應該是這樣的一種方式:view由不同的view component和action component組成,這里view只是一個模板,沒有任何業(yè)務數據。 提供一個類似PrivilegeViewFactory的類,傳入view模板,和相應的角色(用戶,組。。),生成相應的PrivilegeView,然后由業(yè)務邏輯去填充數據,這樣可以容易做到權限和view的分離,層次也比較清晰。 每個view component要實現相應的權限接口,要根據不同的角色生成不同的view component。比如DataGrid,不同的角色看的列是不同的,甚至數據內容也是不同的,更細粒度的看,業(yè)務不同字段的的數據也是不同。這部分是和ui綁定的,也是最復雜,工作量最大的部分。
          posted on 2005-12-21 12:39 Vincent Thinking 閱讀(472) 評論(3)  編輯  收藏 所屬分類: Work

          評論

          # re: 用3維坐標來看權限部分 2005-12-22 09:50 Programmer's Life
          ^_^,我在和team講的時候更多的講到的是一種"強奸"的手段,呵呵,其實就是類似Hibernate對于編寫的PO通常采用動態(tài)代碼生成的機制。
          至于View分解為View Component以及Action Component這個是現在所有的UIComponent的通常做法,這個是一個顯示和邏輯分離的原則。  回復  更多評論
            

          # re: 用3維坐標來看權限部分 2005-12-22 12:47 Vincent Thinking
          "強奸"的手段。。汗。。^_^

          我強調的不是顯示和邏輯分離,而是View Component以及Action Component都要實現相應的權限接口,我這里想討論的是權限的處理方式。根據Role以及相應的權限規(guī)則動態(tài)的產生不同的View Component,Action Component,由組裝器來組裝這些組件。當然權限規(guī)則會涉及到業(yè)務邏輯,只是初步的一個構思。  回復  更多評論
            

          # re: 用3維坐標來看權限部分 2005-12-22 21:30 Programmer's Life
          呵呵,權限其實就是兩個層面的處理,一個是對現有操作的一個截面,另一個則是對現有操作的一個侵入,截面來說處理方式比較容易,侵入方面現在能想到的也就是用動態(tài)代碼生成這樣的手段了  回復  更多評論
            

          主站蜘蛛池模板: 阿荣旗| 福建省| 千阳县| 同江市| 辉南县| 扶绥县| 闸北区| 炎陵县| 万山特区| 尉氏县| 大渡口区| 孝义市| 化隆| 忻州市| 玉环县| 连江县| 霍邱县| 霍州市| 彩票| 蒲城县| 安陆市| 江阴市| 独山县| 霍山县| 固安县| 龙川县| 张家港市| 乌鲁木齐市| 石家庄市| 玉溪市| 科技| 凤阳县| 宣汉县| 长春市| 新蔡县| 新乡市| 中山市| 宜州市| 平果县| 安陆市| 威海市|