From 2762304ae810ae10edd46ef3249f3856ce00bbb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Sch=C3=A4fer?= Date: Tue, 28 Mar 2023 22:16:15 +0200 Subject: [PATCH] Make AdminUserInfo compatible with new API The mod_http_admin_api changed recently [1], so we need to follow suit. Fixes #149. [1]: https://hg.prosody.im/prosody-modules/rev/d68348323406 --- snikket_web/prosodyclient.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/snikket_web/prosodyclient.py b/snikket_web/prosodyclient.py index d00ddd5..412335c 100644 --- a/snikket_web/prosodyclient.py +++ b/snikket_web/prosodyclient.py @@ -61,12 +61,18 @@ class AdminUserInfo: cls, data: typing.Mapping[str, typing.Any], ) -> "AdminUserInfo": + try: + roles: typing.Optional[typing.List[str]] = [data["role"]] + assert roles is not None # make mypy happy + roles.extend(data.get("secondary_roles", [])) + except KeyError: + roles = data.get("roles") return cls( localpart=data["username"], display_name=data.get("display_name") or None, email=data.get("email") or None, phone=data.get("phone") or None, - roles=data.get("roles"), + roles=roles, )