Files
QSfera/Desktop/test/gui/helpers/api/provisioning.py
Курнат Андрей 2315f25754 Initial QSfera import
2026-06-07 10:20:04 +03:00

71 lines
2.1 KiB
Python

import json
from PySide6.QtCore import QJsonDocument
import helpers.api.http_helper as request
from helpers.ConfigHelper import get_config
from helpers import UserHelper
from helpers.api.utils import url_join
created_groups = {}
created_users = {}
def get_graph_url():
return url_join(get_config("localBackendUrl"), "graph", "v1.0")
def create_user(username):
if username in UserHelper.test_users:
user = UserHelper.test_users[username]
else:
user = UserHelper.User(
username=username,
displayname=username,
email=f'{username}@mail.com',
password=UserHelper.get_default_password(),
)
url = url_join(get_graph_url(), "users")
body = json.dumps(
{
"onPremisesSamAccountName": user.username,
"passwordProfile": {"password": user.password},
"displayName": user.displayname,
"mail": user.email,
}
)
response = request.post(url, body)
request.assert_http_status(response, 201, f"Failed to create user '{username}'")
resp_object = response.json()
# Check if the user already exists
user_info = {
"id": resp_object["id"],
"username": user.username,
"password": user.password,
"displayname": resp_object["displayName"],
"email": resp_object["mail"],
}
created_users[username] = user_info
def delete_created_users():
for username, user_info in list(created_users.items()):
user_id = user_info['id']
url = url_join(get_graph_url(), "users", user_id)
response = request.delete(url)
request.assert_http_status(response, 204, "Failed to delete user")
del created_users[username]
def get_capabilities():
server_url = get_config('localBackendUrl')
url = url_join(server_url, '/ocs/v1.php/cloud/capabilities?format=json')
response = request.get(url)
response_str = response.text
response_doc = QJsonDocument.fromJson(response_str.encode("utf-8"))
response_obj = response_doc.object()
capabilities = response_obj.get('ocs').get('data').get('capabilities')
return capabilities