posts - 262,  comments - 221,  trackbacks - 0
【1.业务需求】
部门有3个team,现需要为部门创建一个版本库,实现项目资源的“集中控制,分散管理”。即能够满足每个成员日常的工作需求,又要保护成员不能浏览与其无关的资源。

【2.基本思路】
我们在分配权限时都是按照“从严不从宽”的原则,所以在分配权限的时候必须小心谨慎---“够用就行”是不二的选择。我的模型分为3层结构:

 ①超级管理员:超级管理员体现了“集中控制”的原则,对所有资源具有最高rw权限。
 ②组管理员:组管理员体现了“分散管理”的原则,对自己组的项目管理负责
 ③项目组成员:包括项目组组长和普通项目组员

模型基本思想:
 ①超级管理员对版本库下的任何资源有rw权限
 ②组管理员对组内的任何资源有rw权限
 ③项目组成员对自己参与的项目有rw权限
 ④每个组的资源对其他组的成员不可见,除非特别授权
 ⑤每个组的资源对组内成员均可见,但只有参与成员才有写权限
 ⑥如果要跨组或跨项目读写,需书面向超级管理员申请开通权限

【3.示例代码】
首先来看authz这个文件中关于用户组的定义,我定义了三个基本组:group-ps,group-fix,group-bss。此外还定义了一个group-ehk组用于包含这三个组的所有成员。

为了方便我们前面提到的“分散管理”,我们还需要为每个组定义一个组管理员。这就是group-ps-admin,group-fix-admin,group-bss-admin。同样的为三个组的管理员创建一个共同组group-team-admin。为了体现我们“集中控制”的原则,我们需要定义一个最高权限的管理员组group-top-admin。

最后是定义一个包含所有人的group-all-user组。

为什么我们需要反复定义这些“组的组”?因为在为大量用户提供同一个服务时这种做法可以节省很多输入(例如为项目组,管理员组发送邮件)。

[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

下面我们来看关键的权限控制部分,基本结构为:svn://host_name/department_name/team_name/project_name。

每个项目的check in/out路径都可以由上面的规则构成,例如部门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

我们的配置遵循“先小后大”的原则,在资源入口处一律收缩到最小,往下根据项目的需要逐渐扩大。而且每个组都只能访问到该组下面的资源,对于上层的/目录没有读权限。对于公用目录/common则向所有人开放。


-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2008-12-25 17:08 Paul Lin 阅读(1885) 评论(0)  编辑  收藏 所属分类: 项目管理

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(19)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜