如何为多个用户启用“可以更新配置文件”

山姆Rosenstein
2023-01-22 11:09

这篇知识库文章的目的是提供一种为现有用户启用“Can Update Profile”选项的有效方法。
为了做到这一点,我们将编写一个利用以下Artifactory REST API调用的脚本。

  1. 让用户-返回所有Artifactory用户的列表
  2. 获取用户详细信息-返回特定Artifactory用户的详细信息
  3. 更新用户-为每个用户更新' profileUpdatable: true '

一般的想法是首先生成Artifactory实例中所有用户的列表。之后,我们将检查该用户是否为管理员。接下来,我们将更新每个用户的用户配置文件。

我们需要检查用户是不是管理员的原因是因为Update user调用将为任何未提供的属性设置默认值。在这种情况下,admin的默认值是' false ',所有用户都是。因此,如果调用是由admin用户发起的,那么他们的设置将被更新为' admin:false '。

示例脚本是用Python编写的请求图书馆。请自定义脚本,以满足您的具体需求。进口的要求
进口json
从请求。导入HTTPBasicAuth
User_response =请求。get(ART_URL + "/api/security/users", auth=HTTPBasicAuth(USER, PASSWORD))

#通过Artifactory中的所有用户进行交互
对于user_response.json()中的user:
#检查用户是否为admin
Username = user['name']
User_details_response =请求。get(ART_URL + '/api/security/users/' + username,auth=HTTPBasicAuth(USER, PASSWORD))
isAdmin = user_details_response.json()['admin']

如果不是isAdmin:
#更新非admin用户的profileUpdatable
加载= json。dumps({"profileUpdatable": "true"})
Update_user_response =请求。post(ART_URL + '/api/security/users/' + username, data = load, verify=False, auth=HTTPBasicAuth(USER, PASSWORD))
print('Updated profileUpdatable for user: ' + username)