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

山姆Rosenstein
2021-04-18 07:02

这篇知识库文章的目的是提供一种为现有用户启用“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 = requests。get(ART_URL + "/api/security/users", auth=HTTPBasicAuth(USER, PASSWORD))

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

如果不是isAdmin:
#为非admin用户更新profile
Pload = json。dump ({"profileUpdatable": "true"})
Update_user_response =请求。post(ART_URL + '/api/security/users/' + username, data = pload, verify=False, auth=HTTPBasicAuth(USER, PASSWORD))
print('已更新的profileUpdatable for user: ' +用户名)