posts - 262,  comments - 221,  trackbacks - 0
          【1.業(yè)務(wù)需求】
          部門有3個team,現(xiàn)需要為部門創(chuàng)建一個版本庫,實現(xiàn)項目資源的“集中控制,分散管理”。即能夠滿足每個成員日常的工作需求,又要保護成員不能瀏覽與其無關(guān)的資源。

          【2.基本思路】
          我們在分配權(quán)限時都是按照“從嚴不從寬”的原則,所以在分配權(quán)限的時候必須小心謹慎---“夠用就行”是不二的選擇。我的模型分為3層結(jié)構(gòu):

           ①超級管理員:超級管理員體現(xiàn)了“集中控制”的原則,對所有資源具有最高rw權(quán)限。
           ②組管理員:組管理員體現(xiàn)了“分散管理”的原則,對自己組的項目管理負責
           ③項目組成員:包括項目組組長和普通項目組員

          模型基本思想:
           ①超級管理員對版本庫下的任何資源有rw權(quán)限
           ②組管理員對組內(nèi)的任何資源有rw權(quán)限
           ③項目組成員對自己參與的項目有rw權(quán)限
           ④每個組的資源對其他組的成員不可見,除非特別授權(quán)
           ⑤每個組的資源對組內(nèi)成員均可見,但只有參與成員才有寫權(quán)限
           ⑥如果要跨組或跨項目讀寫,需書面向超級管理員申請開通權(quán)限

          【3.示例代碼】
          首先來看authz這個文件中關(guān)于用戶組的定義,我定義了三個基本組:group-ps,group-fix,group-bss。此外還定義了一個group-ehk組用于包含這三個組的所有成員。

          為了方便我們前面提到的“分散管理”,我們還需要為每個組定義一個組管理員。這就是group-ps-admin,group-fix-admin,group-bss-admin。同樣的為三個組的管理員創(chuàng)建一個共同組group-team-admin。為了體現(xiàn)我們“集中控制”的原則,我們需要定義一個最高權(quán)限的管理員組group-top-admin。

          最后是定義一個包含所有人的group-all-user組。

          為什么我們需要反復定義這些“組的組”?因為在為大量用戶提供同一個服務(wù)時這種做法可以節(jié)省很多輸入(例如為項目組,管理員組發(fā)送郵件)。

          [groups]

          # EHK team member
          group-ps 
          = qlinpen,qxianhu,qaobzho,qliawei,qhongguo,qzhefen,ezuokua
          group-fix 
          = qweiqlu,qguiliu,qjizhai,qcaiyun,qshilia 
          group-bss 
          = qhuaxin,qliweij
          group-ehk = @group-ps,@group-fix,@group-bss


          # Each team administrator
          group-ps-admin 
          = qlinpen,qxianhu
          group-fix-admin 
          = qweiqlu
          group-bss-admin 
          = qhuaxin,qliweij
          group-team-admin = @group-ps-admin,@group-fix-admin,@group-bss-admin


          # Top level administrator
          group-top-admin = admin

          # All user
          group-all = @group-ehk,@group-top-admin

          下面我們來看關(guān)鍵的權(quán)限控制部分,基本結(jié)構(gòu)為:svn://host_name/department_name/team_name/project_name。

          每個項目的check in/out路徑都可以由上面的規(guī)則構(gòu)成,例如部門CBCIO下面的ps組有一個項目newsletter,那么該項目的check in/out路徑為:svn://host_name/CBCIO/ps/newsletter。

          示例配置:
          # Root folder
          [/]
          @group-top-admin 
          = rw

          # Team root folder
          [/ps]
          @group-ps-admin 
          = rw
          @group-ps 
          = r

          [/ps/newsletter]
          qlinpen 
          = rw

          [/fix]
          @group-fix-admin 
          = rw
          @group-fix 
          = r

          [/bss]
          @group-bss-admin 
          =rw
          @group-bss 
          = r

          [/common]
          @group-ehk 
          = r

          我們的配置遵循“先小后大”的原則,在資源入口處一律收縮到最小,往下根據(jù)項目的需要逐漸擴大。而且每個組都只能訪問到該組下面的資源,對于上層的/目錄沒有讀權(quán)限。對于公用目錄/common則向所有人開放。


          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2008-12-25 17:08 Paul Lin 閱讀(2004) 評論(0)  編輯  收藏 所屬分類: 項目管理
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 九台市| 张掖市| 苗栗市| 门源| 花莲县| 张家川| 驻马店市| 温宿县| 罗江县| 德昌县| 玉屏| 香港 | 英山县| 和田县| 孙吴县| 赤峰市| 慈利县| 宜昌市| 平舆县| 泰顺县| 辽阳县| 西盟| 清水县| 沁源县| 高阳县| 新巴尔虎右旗| 定陶县| 哈尔滨市| 开江县| 永和县| 临泽县| 舒城县| 疏勒县| 嘉善县| 佛坪县| 榆社县| 浦江县| 高州市| 普格县| 吉木乃县| 东丰县|