Gitlab用户权限管理(源码修改)

访问权限 - Visibility Level

这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含3种

  • Private - 私有,只有你或属于该项目成员才有权限访问
  • Internal - 内部,所有登录用户都可以访问
  • Public - 公开,所有人都可以访问

在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等.

角色

Gitlab定义了以下几个角色:

  • Guest - 访客
  • Reporter - 报告者
  • Developer - 开发者
  • Master - 管理员
  • Owner - 拥有者

权限

不同角色,拥有不同权限,下面列出Gitlab各角色权限

行为GuestReporterDeveloperMasterOwner
创建issue
留言评论
更新代码 
下载工程 
创建代码片段 
创建合并请求  
创建新分支  
提交代码到非保护分支  
强制提交到非保护分支  
移除非保护分支  
添加tag  
创建wiki  
管理issue处理者  
管理labels  
创建里程碑   
添加项目成员   
提交保护分支   
使能分支保护   
修改/移除tag   
编辑工程   
添加deploy keys   
配置hooks   
切换visibility level    
切换工程namespace    
移除工程    
强制提交保护分支    
移除保护分支    

更多权限请查看:http://doc.gitlab.com/ee/permissions/permissions.html

PS: 关于保护分支的设置,可以进入Settings->Protected branches进行管理

修改权限

在项目中,我想去限制developer的权限,比如不能让developer管理merge请求。

有一个办法就是直接修改Gitlab的源码,上述的行为权限都会定义在project_policy.rb文件中,我们只需要添加或删除相应的权限

rule { can?(:developer_access) }.policy do
    enable :admin_board
#   管理merge请求行为
#   enable :admin_merge_request
    enable :admin_milestone
#   更新merge请求行为
#   enable :update_merge_request
    enable :reopen_merge_request
    enable :create_commit_status
    enable :update_commit_status
    enable :create_build
    enable :update_build
    enable :create_pipeline
    enable :update_pipeline
    enable :read_pipeline_schedule
    enable :create_pipeline_schedule
    enable :create_merge_request_from
    enable :create_wiki
    enable :push_code
    enable :resolve_note
    enable :create_container_image
    enable :update_container_image
    enable :destroy_container_image
    enable :create_environment
    enable :create_deployment
    enable :create_release
    enable :update_release
  end

 

PS: Gitlab版本号为12.3

project_policy.rb路径为/opt/gitlab/embedded/service/gitlab-rails/app/policies/project_policy.rb

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值