EFTScriptSamples/python/REST API/REST-move-user.py

66 lines
2.2 KiB
Python

import requests
import json
# Authentication
baseURL = "http://192.168.4.14:4450/admin"
user = "a"
password = "QjIlmT4H"
authURL = f"{baseURL}/v1/authentication"
body = {"userName": user, "password": password, "authType": "EFT"}
r1 = requests.post(authURL, json=body)
eftresp1 = r1.json()
authheader ={"Authorization": f"EFTAdminAuthToken {eftresp1['authToken']}"}
# Get Site ID
sitename = 'My Site'
getsiteURL = f"{baseURL}/v2/sites"
r2 = requests.get(getsiteURL, headers=authheader)
eftresp2 = r2.json()
# print(r2.status_code)
for index, site in enumerate(eftresp2["data"]):
if site["attributes"]["name"] == sitename:
print(f'Name: {eftresp2["data"][index]["attributes"]["name"]} Site ID: {eftresp2["data"][index]["id"]}')
siteid = eftresp2["data"][index]["id"]
break
#Get User ID
username = 'b'
getusersURL = f"{baseURL}/v2/sites/{siteid}/users"
r3 = requests.get(getusersURL, headers=authheader)
eftresp3 = r3.json()
for index, user in enumerate(eftresp3["data"]):
if user["attributes"]["loginName"] == username:
print(f'User ID: {eftresp3["data"][index]["id"]}')
userid = eftresp3["data"][index]["id"]
break
#Get Template id
desttemplate = 'Default Settings'
gettemplateURL = f"{baseURL}/v2/sites/{siteid}/users"
r4 = requests.get(gettemplateURL, headers=authheader)
eftresp4 = r4.json()
for index, user in enumerate(eftresp4["data"]):
if eftresp4["data"][index]["relationships"]["userTemplate"]["data"]["meta"]["name"] == desttemplate:
print(f'Template ID: {eftresp4["data"][index]["relationships"]["userTemplate"]["data"]["id"]}')
usertemplateid = eftresp4["data"][index]["relationships"]["userTemplate"]["data"]["id"]
break
# Data to change, usertemplateid is the destination template
payload = {
"data": {
"type": "userTemplate",
"relationships": {
"userTemplate": {
"data": {
"id": usertemplateid
}
}
}
}
}
#Push the change
patchuserURL = f"{baseURL}/v2/sites/{siteid}/users/{userid}"
r5 = requests.patch(patchuserURL, json.dumps(payload), headers=authheader)
eftresp5 = r5.json()
print(r5.status_code)