diff --git a/compose.yaml b/compose.yaml index f1bfe25..225965f 100644 --- a/compose.yaml +++ b/compose.yaml @@ -45,11 +45,21 @@ services: req = urllib.request.Request(base + "/api/collections/users/auth-with-password", data=body, headers={"Content-Type": "application/json"}) with urllib.request.urlopen(req, timeout=10) as response: return json.load(response) - session = auth(old) - record_id = session["record"]["id"] - body = json.dumps({"password": new, "passwordConfirm": new}).encode() - req = urllib.request.Request(base + "/api/collections/users/records/" + record_id, data=body, method="PATCH", headers={"Authorization": session["token"], "Content-Type": "application/json"}) - with urllib.request.urlopen(req, timeout=10) as response: - updated = json.load(response) - verified = auth(new) - print(json.dumps({"password_changed": updated.get("id") == record_id, "new_login_ok": bool(verified.get("token"))}), flush=True) + user_session = auth(old) + super_body = json.dumps({"identity": email, "password": old}).encode() + super_req = urllib.request.Request(base + "/api/collections/_superusers/auth-with-password", data=super_body, headers={"Content-Type": "application/json"}) + with urllib.request.urlopen(super_req, timeout=10) as response: + super_session = json.load(response) + update = json.dumps({"password": new, "passwordConfirm": new}).encode() + user_req = urllib.request.Request(base + "/api/collections/users/records/" + user_session["record"]["id"], data=update, method="PATCH", headers={"Authorization": super_session["token"], "Content-Type": "application/json"}) + with urllib.request.urlopen(user_req, timeout=10) as response: + user_updated = json.load(response) + super_req = urllib.request.Request(base + "/api/collections/_superusers/records/" + super_session["record"]["id"], data=update, method="PATCH", headers={"Authorization": super_session["token"], "Content-Type": "application/json"}) + with urllib.request.urlopen(super_req, timeout=10) as response: + super_updated = json.load(response) + user_verified = auth(new) + super_body = json.dumps({"identity": email, "password": new}).encode() + super_req = urllib.request.Request(base + "/api/collections/_superusers/auth-with-password", data=super_body, headers={"Content-Type": "application/json"}) + with urllib.request.urlopen(super_req, timeout=10) as response: + super_verified = json.load(response) + print(json.dumps({"user_changed": bool(user_updated.get("id")), "superuser_changed": bool(super_updated.get("id")), "user_login_ok": bool(user_verified.get("token")), "superuser_login_ok": bool(super_verified.get("token"))}), flush=True)