gitlab批量更改用户权限属性(关闭用户创建项目以及创建用户组)

您所在的位置:网站首页 gitlab管理员修改用户权限 gitlab批量更改用户权限属性(关闭用户创建项目以及创建用户组)

gitlab批量更改用户权限属性(关闭用户创建项目以及创建用户组)

2024-06-21 10:51| 来源: 网络整理| 查看: 265

需求

昨天在gitlab 服务器端更改了用户can_create_group这个属性,默认属性值是Ture,我们需要改为False,意思就是禁止用户创建项目组。 还有禁止创建个人项目等projects limit 这个属性。 修改服务器配置文件之后,创建新的用户,默认就不会带有创建项目组权限了。

问题

但是问题来了,之前创建好的用户,不会因为修改了服务端的配置而更改权限,需要人为手动去改;

解决办法

写个脚本批量更改吧,排除一些不用修改的用户,比如管理员,或者自己,机器人,僵尸账号等。

pip install python-gitlab #!/bin/python3 __autor__ = "chunk" __date__ = "2022-05-10" import gitlab import logging import sys logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s", handlers=[ logging.FileHandler("debug.log"), logging.StreamHandler(sys.stdout) ] ) logging.debug('This message is skipped as a level is set as INFO') logging.info('So should this') logging.warning('And this, too') logging.error('Testing non-ASCII character, Ø and ö') url = 'https://gitlab.abc.com/' # gitlab安装地址 private_token = '123456' # gitlab 登录密钥 需自己设置 # 登录 获取gitlab操作对象gl gl = gitlab.Gitlab(url, private_token) # 获取第一页的用户列表 (返回[,]) # users = gl.users.list() # log.info(users) # 获取所有的用户列表 users = gl.users.list(all=True) for a in users: if a.id != 1 and a.id != 2 and a.id != 23 and a.id !=13 and a.id !=4: # 修改用户属性权限 logging.info("正在处理当前用户: {user}".format(user=a.username)) a.can_create_group = False a.projects_limit = 0 a.save() logging.info("用户名:{a} ,名字: {b}, ID: {c}, projects limit: {d},允许创建组: {e}".format(a=a.username,b=a.name,c=a.id,d=a.projects_limit,e=a.can_create_group)) # print(a.username) # print(a.name) # print(a.id) # print(a.projects_limit) # print(a.can_create_group) # print(users) # log.info(users) # 创建用户 """ 常用参数:以下参数都可以使用user对象进行修改 email (必填)-电子邮件 username (必填)-用户名 name (必填)-名称 password (可选)-密码 can_create_group (可选)-用户可以创建组-正确或错误 skip_confirmation (可选)-跳过确认-正确或错误(默认) external (可选)-将用户标记为外部用户-true或false(默认) """ # user = gl.users.create({'email': '[email protected]', # 'password': 'qinsh123456', # 'username': 'qinsh', # 'name': '秦始皇'}) # 根据用户ID获取用户对象 # user = gl.users.get(1) # 根据用户Git账号获取用户对象 # user = gl.users.list(username="qinsh")[0] # # 根据用户对象可以进行如下操作 # username = user.username # 获取用户Git账号 # name = user.name # 获取用户姓名 # user_id = user.id # 获取用户ID # # 修改用户属性 # user.external = True # 将用户标记为外部用户 # user.save() # # 删除用户 # gl.users.delete(user_id) # 根据用户ID进行删除 # user.delete() # 根据用户对象直接进行删除

参考: python gitlab获取用户信息、创建用户、修改用户及删除用户等操作 Getting started with the API



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3