<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    1+1=2,0+0=0

    日月累積
    posts - 7, comments - 50, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    最近項(xiàng)目的項(xiàng)目很奇怪,一個(gè)大項(xiàng)目(系統(tǒng))里包含了很多小的子系統(tǒng),而這些子系統(tǒng)中都有權(quán)限控制的部分,這件事情挺讓我頭痛的,記得一年前在沈陽(yáng),我曾經(jīng)有一段時(shí)間也因因這個(gè)問(wèn)題而疲于奔命,為什么說(shuō)疲于奔命呢?由于當(dāng)時(shí)項(xiàng)目進(jìn)度不允許,導(dǎo)致最終系統(tǒng)權(quán)限模塊草草了事,每個(gè)模塊都是由讀權(quán)限字符串來(lái)控制用戶(hù)ACL,當(dāng)用戶(hù)無(wú)法訪(fǎng)問(wèn)時(shí),提示權(quán)限不夠。這么做對(duì)用戶(hù)是很不負(fù)責(zé)任的,既然讓用戶(hù)看到了操作的方式和界面,為什么又告訴用戶(hù)沒(méi)有權(quán)限呢?我開(kāi)始懷疑我們是否應(yīng)該在底層就封殺用戶(hù)的訪(fǎng)問(wèn)權(quán)限。

    現(xiàn)在項(xiàng)目開(kāi)展起來(lái)了,雖然目前我已經(jīng)有了對(duì)權(quán)限控制的一套方案,并且實(shí)施成了我的可重用框架代碼,雖然目前的權(quán)限也是基于眾星捧月的AOP思想,但我至今對(duì)權(quán)限設(shè)計(jì)仍有兩個(gè)疑惑:

    疑惑一:很多同行提出方案,想要在底層就截取用戶(hù)權(quán)限,控制用戶(hù)對(duì)方法或者類(lèi)的訪(fǎng)問(wèn)。這樣做的好處在于可以將系統(tǒng)功能與業(yè)務(wù)邏輯松散耦合,并且實(shí)現(xiàn)簡(jiǎn)單,結(jié)構(gòu)清晰,三兩個(gè)advisor、filter,或者acegi就能搞定,但在web程序中體現(xiàn)出了他的劣勢(shì),當(dāng)我們將用戶(hù)的訪(fǎng)問(wèn)拒絕在業(yè)務(wù)邏輯之外的時(shí)候,我們此時(shí)是否應(yīng)該拋出異常提示用戶(hù)?一旦提示用戶(hù)沒(méi)有相應(yīng)的權(quán)限,我認(rèn)為對(duì)于用戶(hù)來(lái)說(shuō),這就不是一個(gè)perfect practice。由此得出,我們根本就不應(yīng)該讓用戶(hù)做此次操作,而控制用戶(hù)操作的源頭就是界面,也就是說(shuō),在界面上我們就應(yīng)該對(duì)用戶(hù)的權(quán)限元素(如添加按鈕、功能菜單等)進(jìn)行控制。此時(shí),一對(duì)矛盾出現(xiàn)了,要控制界面上形形色色的元素只有兩種辦法,一,將權(quán)限與你的界面結(jié)合起來(lái)設(shè)計(jì),這將違背AOP的思想,也使得系統(tǒng)控制模塊的重用性大大下降,二,我們借鑒primeton的想法,將權(quán)限控制的理念抽取出來(lái),單獨(dú)做成一套權(quán)限系統(tǒng),解決你所有的需要權(quán)限控制的系統(tǒng)需求,這樣也有令人頭痛的問(wèn)題,你的所有想用它來(lái)控制權(quán)限的系統(tǒng),必須界面上統(tǒng)一風(fēng)格。或許這樣的方式對(duì)商業(yè)web系統(tǒng)是合適的,畢竟需要你大刀闊斧個(gè)性化的地方不多,但我們卻很難保證在未來(lái)幾年內(nèi)商業(yè)web系統(tǒng)的風(fēng)格不改變。再者,開(kāi)發(fā)這么一個(gè)系統(tǒng)也不是一蹴而就的事,在這個(gè)問(wèn)題上一直讓我困惑不已。


    疑惑二:大多應(yīng)用的權(quán)限判定是基于權(quán)限字符串的,但存儲(chǔ)在數(shù)據(jù)庫(kù)中的權(quán)限字符串能夠判定的權(quán)限并不多,在我們這次項(xiàng)目中,我引用了基于二進(jìn)制的8421權(quán)限判定法則,我深深的感覺(jué)到權(quán)限字符串的弱勢(shì),這使我想起了中國(guó)古老一套數(shù)學(xué)理論-“盈不足術(shù)”,超遞增序列的魅力在我眼前滑過(guò),

    首先我來(lái)解釋一下盈余不足理論:有十只盒子,第一個(gè)盒子里放一個(gè)盤(pán)子,第二個(gè)盒子里放兩只,第三個(gè)盒子里放四只,第四個(gè)盒子里放八只……第九個(gè)盒子里放256只,第十個(gè)盒子放512只,即第N只箱子里放2^(N-1)只盤(pán)子,一共1023只。那么命題如下:在1023這個(gè)數(shù)字之內(nèi),任何一個(gè)數(shù)目都可以由這十只盒子里的幾只組合相加而成。那么1、2、4、8、16、32、64、128、256、512這個(gè)序列為什么有這么個(gè)魔力?這個(gè)數(shù)列的特點(diǎn):1、每項(xiàng)是后一項(xiàng)的二倍,2、每項(xiàng)都比前面所有項(xiàng)的和大,而且大1。這個(gè)1就是關(guān)鍵,就因?yàn)檫@個(gè)1,它才可以按1遞增,拼出總和之內(nèi)任意一個(gè)整數(shù)。這個(gè)序列叫做超遞增序列,它是解決背包問(wèn)題的基礎(chǔ)。3、拼出總和之內(nèi)任意一個(gè)整數(shù)可以由這個(gè)序列中的一些數(shù)構(gòu)成,且構(gòu)成方法唯一,據(jù)說(shuō)是密碼學(xué)中的NP定理。譬如說(shuō)這個(gè)數(shù)列總合中20這個(gè)數(shù),只能由16+4一種方法構(gòu)成,由此延伸出來(lái),如果綜合中這個(gè)數(shù)據(jù)代表一個(gè)權(quán)值,我們可以解出它的所有構(gòu)成參數(shù)(操作),如20這個(gè)數(shù)據(jù),我們可以挨個(gè)和序列中每一項(xiàng)按位與,得出來(lái)如果不等于0,就說(shuō)明他是由這個(gè)數(shù)構(gòu)成的。

    保存權(quán)值到int還是varchar對(duì)于我們來(lái)說(shuō)是個(gè)問(wèn)題,當(dāng)然,保存字符串的好處是運(yùn)算壓力小。我們可能聽(tīng)過(guò)一個(gè)故事,就是把這個(gè)超遞增序列延伸到第64項(xiàng),就是那個(gè)術(shù)士和皇帝在國(guó)際象棋棋盤(pán)上要米粒的傳說(shuō)。64項(xiàng)的和是一個(gè)天文數(shù)字!但計(jì)算機(jī)本身就是一個(gè)只認(rèn)識(shí)二進(jìn)制的機(jī)器!很多程序員整天只關(guān)心架構(gòu),甚至不知道或者不關(guān)心位操作是什么玩意,當(dāng)然我們有朋友擔(dān)心數(shù)據(jù)庫(kù)的int不夠長(zhǎng),那么既然可以保存一個(gè)只有0、1組成的varchar字符串,為什么不能保存一個(gè)十六進(jìn)制的字符串,有人規(guī)定varchar只能保存01嗎?十六進(jìn)制串的長(zhǎng)度正好是二進(jìn)制的四分之一。

    由此我們可以無(wú)限制的擴(kuò)展權(quán)值操作。

    在最近的項(xiàng)目里,我對(duì)權(quán)限的控制分成兩個(gè)部分,第一就是用戶(hù)體驗(yàn)上,我設(shè)置了一個(gè)權(quán)限標(biāo)簽,從數(shù)據(jù)庫(kù)中抽取權(quán)限信息,然后做到標(biāo)簽里,也湊或算成是界面AOP了,第二就是底層的攔截,用了Spring 的AOP,為的是防止權(quán)限沖突,雙管齊下。暫時(shí)解決權(quán)限所需,另外在算法上我用了16進(jìn)制的權(quán)限判別代碼,雖然配置較麻煩,寫(xiě)完代碼還要寫(xiě)文檔說(shuō)明,不過(guò)也解決了權(quán)限繁雜又多的問(wèn)題,暫時(shí)就這樣了,嘿嘿,以后有空再研究。


    評(píng)論

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二  回復(fù)  更多評(píng)論   

    2007-01-02 13:39 by ant
    如能結(jié)合些代碼談?wù)劊选:梦模P(guān)注!

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二  回復(fù)  更多評(píng)論   

    2007-01-02 14:29 by BeanSoft
    贊一個(gè)!

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二  回復(fù)  更多評(píng)論   

    2007-01-02 14:31 by 綠色使者
    其實(shí)上面用二進(jìn)制一下子就解釋清楚了,1,2,4,8就是二進(jìn)制的基,每一個(gè)十進(jìn)制數(shù)當(dāng)然可以用唯一的這些二進(jìn)制基表示出來(lái)啦

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二  回復(fù)  更多評(píng)論   

    2007-01-02 21:55 by jerson[匿名]
    字也太小了吧

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二  回復(fù)  更多評(píng)論   

    2007-01-02 22:22 by 海思
    是否可以把16進(jìn)制的權(quán)限判別代碼的相關(guān)代碼和文檔發(fā)份給我看看呢?
    我最近也在研究權(quán)限部分,由于對(duì)這塊不熟,比較頭痛,謝謝
    如果可以的話(huà)麻煩發(fā)份到我郵箱
    chmk35@163.com
    謝謝

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)  回復(fù)  更多評(píng)論   

    2007-01-02 22:44 by 江上一葉舟
    首先對(duì)大家的關(guān)注表示感謝^_^
    另外由于我不會(huì)在評(píng)論信息中加載代碼,所以我將本文中的標(biāo)題后面加上了(1),我將在我隨后的幾篇隨筆中分別談一下我的權(quán)限分配的相關(guān)數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)與權(quán)限關(guān)聯(lián)配置、界面權(quán)限控制和底層攔截機(jī)制,小文確是拋磚引玉,謝謝關(guān)注~~:)

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)  回復(fù)  更多評(píng)論   

    2007-01-02 23:04 by errorfun[匿名]
    嗯,不錯(cuò),和我做的第一個(gè)項(xiàng)目時(shí)的想法一樣,權(quán)限系統(tǒng)也用了這個(gè)8421的方式實(shí)現(xiàn),沒(méi)有權(quán)限的人就看不到菜單,看不到操作。這樣處理也是我覺(jué)得比較方便的做法了。不過(guò)后來(lái)是用了四個(gè)字段分別表示增刪改查這四個(gè)方法,1表示有權(quán)限,0表示沒(méi)權(quán)限。
    當(dāng)時(shí)也是想了很多方案后才決定了,因?yàn)閷?duì)于數(shù)據(jù)操作不外四種方式:查看,增加,修改,刪除。查詢(xún),分析,報(bào)表之類(lèi)的都可歸入查看之中。我是用數(shù)據(jù)庫(kù)保存權(quán)限的,因?yàn)橛X(jué)得但用戶(hù)很多權(quán)限也很多時(shí),數(shù)據(jù)庫(kù)的讀取比XML快上許多。只是在第一次讀取相關(guān)操作時(shí),加載所需的權(quán)限的數(shù)據(jù),加載完后以后訪(fǎng)問(wèn)就不用再加載。而XML保存一般都在登錄時(shí)加載了所有權(quán)限,但XML在大量數(shù)據(jù)時(shí)讀取速度確實(shí)不感冒。

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-02 23:46 by 江上一葉舟
    呵呵,我目前所用到的權(quán)限種類(lèi)繁多,所以權(quán)值也很多,權(quán)值基本的計(jì)算公式我就用了2的n-1次方,這樣權(quán)值可以無(wú)限擴(kuò)展,無(wú)論是增、刪、改、查、報(bào)表、上傳、下載,我都會(huì)分配一個(gè)權(quán)值,如果一個(gè)角色擁有多個(gè)權(quán)限,則這個(gè)角色的權(quán)值為他所擁有的所有權(quán)限的權(quán)值的和,我將權(quán)值的和以16進(jìn)制的形式記錄到庫(kù)中,基本上來(lái)說(shuō)一個(gè)用戶(hù)對(duì)一個(gè)資源在數(shù)據(jù)庫(kù)中只有一條權(quán)限記錄

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-02 23:51 by 江上一葉舟
    另外對(duì)于權(quán)限的記錄來(lái)說(shuō),用數(shù)據(jù)還是xml文件來(lái)記錄我認(rèn)為主要不在讀取速度上來(lái)區(qū)分,因?yàn)榇蠖嘟巧珯?quán)限信息我會(huì)放入內(nèi)存中,所以xml還是數(shù)據(jù)庫(kù)來(lái)記載對(duì)我來(lái)說(shuō)無(wú)所謂,但有一點(diǎn)區(qū)別是致命的,就是當(dāng)你修改權(quán)限信息時(shí),你需要修改相應(yīng)的紀(jì)錄,很明顯修改數(shù)據(jù)庫(kù)記錄要比修改xml文件來(lái)的方便,io操作還是挺讓人~~~嘿嘿

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 12:08 by errorfun
    怎么說(shuō)呢,其實(shí)在以前我也考慮過(guò)你這個(gè)無(wú)限擴(kuò)展的問(wèn)題,但仔細(xì)一想,權(quán)限不存在無(wú)限擴(kuò)展,權(quán)限基本的都是增刪改查,因?yàn)樗鼈兌际菍?duì)數(shù)據(jù)庫(kù)的操作,
    比如你說(shuō)的上傳功能,它只不過(guò)是對(duì)上傳的內(nèi)容進(jìn)行增加操作,再如下載,也不過(guò)就是對(duì)上傳內(nèi)容的查看操作,你有查看權(quán)限了,自然有下載功能,有增加權(quán)限了,自然有上傳功能。
    再如報(bào)表,你不過(guò)是對(duì)報(bào)表這些內(nèi)容的查看權(quán)限,所以不存在擴(kuò)展性問(wèn)題。
    不要被擴(kuò)展性所迷惑,我開(kāi)始設(shè)計(jì)權(quán)限時(shí)也一度被8421的可擴(kuò)展性所迷惑,但最后想仔細(xì),其實(shí)也就只有四個(gè)操作而已,放成四個(gè)字段,比8421的方式容易修改,也容易知道有哪些權(quán)限,不用再進(jìn)行計(jì)算。就像你說(shuō)你用16進(jìn)制存權(quán)限吧,如果我1表示查看,2表示增加,4表示修改,8表示刪除,那如果我進(jìn)行增加操作,那你就得判斷我的權(quán)值是否是2,3,6,7,10,11,14,15,這其實(shí)是增加的復(fù)雜性,權(quán)限系統(tǒng)本身就很復(fù)雜了,如果在權(quán)值上面還進(jìn)行人為的復(fù)雜化,而僅僅為的是不存在的擴(kuò)展性,那我覺(jué)得是得不嘗失的。
    如果是在小數(shù)據(jù)量時(shí),XML文件方式不是不錯(cuò)的,可惜權(quán)限本身就是大數(shù)據(jù)量的,針對(duì)這個(gè)問(wèn)題其實(shí)我也想過(guò)一個(gè)解決方案:把每個(gè)人的權(quán)限放到一個(gè)XML文件中,因?yàn)獒槍?duì)個(gè)人的權(quán)限來(lái)說(shuō),相對(duì)還不算太大,然后用一個(gè)主XML存放相關(guān)文件的信息,而每個(gè)信息對(duì)應(yīng)的就是這個(gè)人員的KEY,能唯一查找到對(duì)應(yīng)的XML。這在某程度上應(yīng)該可以解決XML加載的速度問(wèn)題,但覺(jué)得不安全,因?yàn)閄ML文件很難對(duì)其讀寫(xiě)進(jìn)行權(quán)限控制,被人不小心刪除了或修改了,那也是一件麻煩的事,所以最終也沒(méi)用XML文件實(shí)現(xiàn)。

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 12:23 by errorfun
    PS:上面說(shuō)的對(duì)權(quán)值的判斷,可以對(duì)16進(jìn)制進(jìn)行toBinaryString()進(jìn)行判斷第N位是否為1,但如果在權(quán)限設(shè)置頁(yè)面時(shí),用STRUTS標(biāo)簽是很難進(jìn)行這樣的判斷,一種方式是在頁(yè)面用嵌套JAVA的方式進(jìn)行處理判斷,另一種方式是在數(shù)據(jù)讀取后,在返回前進(jìn)行遍歷處理。第一種不用多說(shuō),現(xiàn)在還在頁(yè)面嵌套JAVA的做法已經(jīng)被人拋棄了,原因就不多說(shuō)。第二種自然只是在效率上有所減少而已。取舍還是看你自己了

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 13:10 by 江上一葉舟
    1,樓上的或許還是沒(méi)有看懂我所說(shuō)的權(quán)限設(shè)計(jì),倘若你的‘增加權(quán)限’設(shè)置為1,而a這個(gè)角色當(dāng)前所擁有的權(quán)值是30,那么只需要1&30進(jìn)行二進(jìn)制運(yùn)算,不等于0,則說(shuō)明有增加權(quán)限,沒(méi)有你說(shuō)的那么復(fù)雜。

    2,另外你所說(shuō)的在頁(yè)面嵌入java代碼我不知是從何判斷,我是做好了一個(gè)現(xiàn)成的權(quán)限標(biāo)簽,包在你需要判斷的頁(yè)面元素之外,如你可以在頁(yè)面上這么寫(xiě):
    <privilege scope='session' operation='create' beanName='userinfo'>
    <input type="button" value="添加">
    </privilege>
    這樣系統(tǒng)會(huì)自動(dòng)為你判斷當(dāng)前用戶(hù)是否具有添加權(quán)限,從而為你設(shè)置頁(yè)面上是否顯示添加按鈕

    3,權(quán)限是人定的,我可以把對(duì)這個(gè)資源的增加定為一種權(quán)限,上傳定位一種權(quán)限,客戶(hù)可能要求此人只能上傳不能增加(我說(shuō)的上傳是指以excel文檔的形式上傳上來(lái),解析其中的數(shù)據(jù)并添加入數(shù)據(jù)庫(kù)中),都是有可能的,可能你還是認(rèn)為他們都屬于添加操作,但用戶(hù)就是要求你不能添加,只能上傳,只有它指定的人才能添加。另外我說(shuō)的報(bào)表,不僅僅是察看,我們可以定義一種形式的pdf報(bào)表,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到pdf,并形成餅圖、曲線(xiàn)圖等,這和查看可以說(shuō)完全是兩種不同的操作,所以權(quán)限是沒(méi)有限制的,也就是說(shuō)實(shí)際系統(tǒng)中對(duì)一個(gè)資源的權(quán)限可能最多也就10種撐死了,但我們需要做到的是:無(wú)論對(duì)這個(gè)資源的權(quán)限如何擴(kuò)展,我們都可以應(yīng)對(duì),不是么

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 15:46 by errorfun
    1、確實(shí)沒(méi)想過(guò)這么處理,今天算是學(xué)到了。
    2、是一個(gè)好辦法。
    3、如果是上傳EXCEL的話(huà),可以看成是對(duì)文件的添加操作,解析數(shù)據(jù)可以看成是對(duì)數(shù)據(jù)的添加操作,都是一樣的,文件也不過(guò)是數(shù)據(jù)存儲(chǔ)的一種方式,數(shù)據(jù)庫(kù)未出現(xiàn)之前,數(shù)據(jù)就是以文件的形式保存的,難道數(shù)據(jù)庫(kù)出現(xiàn)后,對(duì)文件的上傳而不保存到數(shù)據(jù)庫(kù)中就不能算是添加操作了?不要跟我說(shuō)你只是讓他上傳,但上傳后是不保存在服務(wù)器或數(shù)據(jù)庫(kù)或其它的任何地方,而僅僅是能點(diǎn)上傳按鈕而已。
    而報(bào)表形成餅圖也是一種權(quán)限的話(huà),可以把它設(shè)置成對(duì)餅圖的查看操作,對(duì)曲線(xiàn)圖的查看操作,導(dǎo)出到PDF,也不過(guò)就是對(duì)PDF的查看操作,不過(guò),個(gè)人認(rèn)為,即然你都可以看到源數(shù)據(jù)了,餅圖,曲線(xiàn)圖卻不讓人看,還讓人家自己去畫(huà)不成?

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 16:53 by 江上一葉舟
    @errorfun
    1,呵呵,上傳文件僅僅是添加操作,我們只是獲得request流,解析流中數(shù)據(jù),并且添加入數(shù)據(jù)庫(kù),如果您硬要認(rèn)為這個(gè)操作就是添加數(shù)據(jù),我覺(jué)得也不無(wú)道理,但客戶(hù)的需求是這樣的:高級(jí)系統(tǒng)管理員角色可以一次性用excel導(dǎo)入一大批數(shù)據(jù),普通的管理員不能進(jìn)行這樣的導(dǎo)入操作,只能逐條添加,于是乎,您認(rèn)為的這兩種“添加”操作在我們的系統(tǒng)中被看成是不同的兩種權(quán)限。

    2,您提到“即然你都可以看到源數(shù)據(jù)了,餅圖,曲線(xiàn)圖卻不讓人看,還讓人家自己去畫(huà)不成?”,您的這個(gè)想法無(wú)可厚非,但目前的需求是這樣的:普通管理員只能看到數(shù)據(jù),即查看源數(shù)據(jù),而領(lǐng)導(dǎo)要求只對(duì)他開(kāi)放數(shù)據(jù)匯總成圖形的功能,也就是數(shù)據(jù)統(tǒng)計(jì)后的圖形查看功能,領(lǐng)導(dǎo)不關(guān)心源數(shù)據(jù),只關(guān)系數(shù)據(jù)的統(tǒng)計(jì)結(jié)果和比例

    3,我覺(jué)得您的理解固然沒(méi)錯(cuò),但不同的客戶(hù)的需求不同,您所說(shuō)的內(nèi)容是針對(duì)需求的理解問(wèn)題:)

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 17:30 by 壞男孩

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 19:37 by errorfun
    @江上一葉舟
    1、對(duì)于所說(shuō)的情況確實(shí)是存在,如果是我,我會(huì)將領(lǐng)導(dǎo)的那種一次性導(dǎo)入看成是另一個(gè)資源操作,而權(quán)限是對(duì)這個(gè)資源操作的設(shè)置,對(duì)普通管理員,則沒(méi)有這個(gè)資源操作的權(quán)限,就像一個(gè)頁(yè)有增加,刪除,修改,查看,導(dǎo)入,上傳,下載的功能一樣,增刪改查,我會(huì)看成是一個(gè)ACTION中的操作,導(dǎo)入看成是另一個(gè)ACTION中的操作,上傳下載看成是第三個(gè)ACTION的操作。一個(gè)頁(yè)面分離成三個(gè)ACTION的權(quán)限設(shè)置,就是這樣而已,不是說(shuō)硬要認(rèn)為。數(shù)據(jù)的讀取方法,過(guò)程,可以不必特別在意,抽象出來(lái)后都一樣。“獲得request流,解析流中數(shù)據(jù),并且添加入數(shù)據(jù)庫(kù)”不過(guò)就是獲得數(shù)據(jù),保存數(shù)據(jù)的過(guò)程,和頁(yè)面填寫(xiě)數(shù)據(jù),然后提交保存入數(shù)據(jù)庫(kù)是相似的,不同的只是過(guò)程。

    2、我說(shuō)的問(wèn)題之前也說(shuō)了它的權(quán)限設(shè)置可以看成是“對(duì)餅圖的查看操作,對(duì)曲線(xiàn)圖的查看操作,導(dǎo)出到PDF,也不過(guò)就是對(duì)PDF的查看操作”,所以對(duì)于領(lǐng)導(dǎo)的要求也是能完成的,普通管理員只有查看數(shù)據(jù)的權(quán)限,領(lǐng)導(dǎo)有查看餅圖的權(quán)限,查看曲線(xiàn)圖的權(quán)限。

    3、當(dāng)然我說(shuō)的也并非是針對(duì)某一需求的理解,而是將頁(yè)面的操作進(jìn)行抽象后的理解所說(shuō)的。呵呵

    權(quán)限有的是基于ACTION或URI,有的是基于資源的,可能你的是基于資源的,所以和我的想法并不是相同的。權(quán)限開(kāi)得更清楚也不是沒(méi)有好處,至少在設(shè)置權(quán)限時(shí)用戶(hù)更加清楚它設(shè)置的權(quán)限對(duì)哪個(gè)操作有影響。
    就像我一開(kāi)始說(shuō)的,這是我第一個(gè)項(xiàng)目時(shí)所想的權(quán)限系統(tǒng),當(dāng)時(shí)所想的也是要簡(jiǎn)化復(fù)雜的權(quán)限系統(tǒng),而沒(méi)有關(guān)注到用戶(hù)設(shè)置權(quán)限時(shí)是否清楚的問(wèn)題,時(shí)隔一年,現(xiàn)在的權(quán)限設(shè)已大不相同,操作的定義在于XML文件中,而非數(shù)據(jù)庫(kù)或用權(quán)值表示,操作可以有十個(gè)或一百個(gè),這都不影響,設(shè)置權(quán)限時(shí)讀取的是XML文件中的信息,它顯示用戶(hù)可以設(shè)置哪些操作,操作對(duì)應(yīng)的模塊等等的信息。而設(shè)置后的相應(yīng)信息同樣保存進(jìn)數(shù)據(jù)庫(kù),在用戶(hù)登陸時(shí)再進(jìn)行加載。數(shù)據(jù)庫(kù)保存的就是XML文件中的模塊或操作的ID,權(quán)限具有繼承的能力,系統(tǒng)權(quán)限優(yōu)于模塊權(quán)限等等。這些都是根據(jù)市場(chǎng)和自己的理解變化而變化的。只是在看到你這篇文章后令我想起了自己設(shè)計(jì)的第一個(gè)權(quán)限系統(tǒng)而有感而發(fā)而已,不要見(jiàn)怪。

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2007-01-03 22:14 by 小賀
    好文章! 學(xué)習(xí)了!!

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2008-02-28 12:22 by black
    就是泛泛的說(shuō),又沒(méi)有一個(gè)簡(jiǎn)單的例子,理論

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2009-03-26 23:40 by interdrp
    權(quán)限->策略->用戶(hù) 實(shí)例 www.interdrp.com 下載分銷(xiāo)系統(tǒng)客戶(hù)端,用系統(tǒng)提示的默認(rèn)的帳套及用戶(hù)名進(jìn)入系統(tǒng)即可。
    有什么好的想法也可以在 http://www.cnblogs.com/interdrp/ 提出,謝謝

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路  回復(fù)  更多評(píng)論   

    2011-08-10 10:58 by 1h
    rtyrt

    # re: web開(kāi)發(fā)中的權(quán)限設(shè)計(jì)拙見(jiàn)一二(1)----設(shè)計(jì)思路[未登錄](méi)  回復(fù)  更多評(píng)論   

    2011-08-10 11:00 by lh
    哥們! 可以將代碼和數(shù)據(jù)放在我郵箱嗎。謝謝
    76162111@qq.com
    主站蜘蛛池模板: 两个人日本免费完整版在线观看1| 亚洲av无码成人精品国产| 国产性生交xxxxx免费| 一本天堂ⅴ无码亚洲道久久| 亚洲精品乱码久久久久久久久久久久| 女人张开腿给人桶免费视频| 日本免费一区二区在线观看| 亚洲中文字幕AV每天更新| 亚洲色图黄色小说| 大学生一级特黄的免费大片视频| 中文字幕在线免费观看| 色偷偷亚洲第一综合| 亚洲最大激情中文字幕| 亚洲福利在线播放| 精品免费国产一区二区三区| 在线观看片免费人成视频播放| 又硬又粗又长又爽免费看 | 亚洲AV无码1区2区久久| 免费v片在线观看视频网站| 中文字幕免费不卡二区| 亚洲日韩国产一区二区三区在线 | 亚洲最大无码中文字幕| 亚洲日韩乱码中文无码蜜桃臀| 亚洲四虎永久在线播放| 日批日出水久久亚洲精品tv| 日韩高清在线免费看| 99热在线观看免费| 午夜免费啪视频在线观看| 久久国产色AV免费观看| 99精品热线在线观看免费视频| 久久久久久久久久国产精品免费 | 国产亚洲精品看片在线观看| 一二三四在线观看免费高清中文在线观看 | 国产精品免费高清在线观看| 97人妻精品全国免费视频 | 国产亚洲精品无码专区| 亚洲愉拍99热成人精品热久久 | 99免费视频观看| 1a级毛片免费观看| 国产无限免费观看黄网站| 福利免费在线观看|