Vincent Thinking

          All about Vincent's work and life

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

          評(píng)論

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

          # re: 用3維坐標(biāo)來看權(quán)限部分 2005-12-22 12:47 Vincent Thinking
          "強(qiáng)奸"的手段。。汗。。^_^

          我強(qiáng)調(diào)的不是顯示和邏輯分離,而是View Component以及Action Component都要實(shí)現(xiàn)相應(yīng)的權(quán)限接口,我這里想討論的是權(quán)限的處理方式。根據(jù)Role以及相應(yīng)的權(quán)限規(guī)則動(dòng)態(tài)的產(chǎn)生不同的View Component,Action Component,由組裝器來組裝這些組件。當(dāng)然權(quán)限規(guī)則會(huì)涉及到業(yè)務(wù)邏輯,只是初步的一個(gè)構(gòu)思。  回復(fù)  更多評(píng)論
            

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

          主站蜘蛛池模板: 禹城市| 通许县| 台北县| 固安县| 桃园县| 巴南区| 营山县| 奉新县| 临安市| 泸西县| 申扎县| 明光市| 张家口市| 法库县| 晋州市| 长丰县| 温泉县| 青海省| 绥德县| 颍上县| 乡城县| 松溪县| 河北区| 湖口县| 大理市| 常州市| 广宁县| 禄劝| 上虞市| 溆浦县| 兴义市| 黄龙县| 尼勒克县| 花莲市| 娱乐| 泾源县| 宜良县| 安岳县| 湘乡市| 普陀区| 滦平县|