三、CVSNT服务器端配置实现子目录权限分配:
1. 实现方式:直接修改fileattr.xml文件实现
2. 达到的效果:
一个项目的CVS标准库结构包括两部分:开发库和受控库。每个人员在项目中担当的角色不同,从而在不同的子目录中应当拥有不同的权限。现假定一个项目,项目名为PJ-XXXXX,项目经理为杨捷,配置管理员为王怡岚,开发人员为胡晓玲和姜洁,确定项目经理拥有开发库与受控库中所有权限(即相当于管理员权限);配置管理员拥有受控库中所有权限以及开发库中项目管理子目录的所有权限,开发库中其它子目录拥有只读权限;开发人员拥有开发库中所有权限,受控库只有只读权限。所以,可以确定完成的效果:
1) admin与yangjie能设置CVSNT服务器的配置,并且能对所有的Repository拥有全部权限,密码与用户名一致;
2) 普通用户有3个:wangyilan,huxiaoling,jiangjie,密码与用户名一致;
3) 受控库:yangjie,wangyilan可以对受控库进行checkout,commit,add (read,write,create),huxiaoli,jiangjie只能进行checkout (read);
4) 开发库中的项目管理子目录:yangjie,wangyilan,huxiaoling,jiangjie均拥有该目录的所有权限,可以进行checkout,commit,add (read,write,create);
5) 开发库中其他子目录:yangjie,huxiaoling,jiangjie可以进行checkout,commit,add (read,write,create),wangyilan只能进行checkout (read)
/*
说明:
权限参数有read,write,add,tag,control.这里只举例说明常要的read,write,add(参见帮助文档);control没有应用成功。
*/
3. 开始配置:
1) 使用CVSNT在服务器端创建一个名为PJ-XXXXX的项目库;
2) 在服务器端对CVSROOT进行设置,创建admin文件(无扩展名),添加管理员用户:admin,yangjie;
3) 定义group组:
在cvsroot建立文件名为group的文件(注意,无扩展名),内容为:
#groupall:hava all permissions
Groupall: admin yangjie
#controlall:have all permissions of control repository
controlall: admin yangjie wangyilan
#controlreadonly: read only of control repository
controlreadonly: huxiaoling jiangjie
#developall:have all permissions of develop repository except DPM subdirectory
developall: admin yangjie huxiaoling jiangjie
#developreadonly: read only of develop repository except DPM subdirectory
developreadonly: wangyilan
#DPMall: have all permissions of DPM subdirectory in develop repository
DPMall: admin yangjie huxiaoling jiangjie wangyilan
/*
说明:
groupall有完全权限;
controlall对受控库有完全权限;
controlreadonly受控库只读;
developall对开发库中除项目管理子目录外有完全权限;
developreadonly对开发库中除项目管理子目录外有只读权限;
DPMall对开发库项目管理子目录有完全权限。
该文件不用注册到checkoutlist。
*/