30.4.5 对引用的授权:扩展模式
扩展模式的引用授权,指的是该版本库的授权指令出现了下列授权关键字中的一个或多个:RWC、RWD、RWCD、RW+C、RW+D、RW+CD。则Gitolite对授权采用新的判定方式。
非快进式推送必须拥有+的授权。
创建引用必须拥有C的授权。
删除引用必须拥有D的授权。
即引用的创建和删除使用了单独的授权关键字,和写权限和强制推送权限分开。下面是一个采用扩展授权关键字的授权文件:
repo test/repo2
RW+C=@administrators
RW+=@dev
RW=@test
repo test/repo3
RW+CD=@administrators
RW+C=@dev
RW
=@test
通过上面的配置文件,对于版本库test/repo2.git具有如下的授权:
用户组@administrators中的用户,具有创建和删除引用的权限,并且能够强制推送。
用户组@dev中的用户,不能创建引用,但可以删除引用,并且可以强制推送。
用户组@test中的用户,可以推送到任何引用,但是不能创建引用,不能删除引用,也不能强制推送。
通过上面的配置文件,对于版本库test/repo3.git具有如下的授权:
用户组@administrators中的用户,具有创建和删除引用的权限,并且能够强制推送。
用户组@dev中的用户,可以创建引用,并能够强制推送,但不能删除引用。
用户组@test中的用户,可以推送到任何引用,但是不能创建引用,不能删除引用,也不能强制推送。