Merge pull request #152 from snikket-im/fix/role-config

Follow new role scheme in Prosody
This commit is contained in:
Matthew Wild
2023-03-29 20:16:36 +01:00
committed by GitHub
3 changed files with 7 additions and 7 deletions

View File

@@ -77,7 +77,7 @@ class EditUserForm(BaseForm):
_l("Access Level"), _l("Access Level"),
choices=[ choices=[
("prosody:restricted", _("Limited")), ("prosody:restricted", _("Limited")),
("prosody:normal", _l("Normal user")), ("prosody:user", _l("Normal user")),
("prosody:admin", _l("Administrator")), ("prosody:admin", _l("Administrator")),
], ],
) )
@@ -116,7 +116,7 @@ async def edit_user(localpart: str) -> typing.Union[werkzeug.Response, str]:
await client.update_user( await client.update_user(
localpart, localpart,
display_name=form.display_name.data, display_name=form.display_name.data,
roles=[form.role.data], role=form.role.data,
) )
await flash( await flash(
@@ -131,7 +131,7 @@ async def edit_user(localpart: str) -> typing.Union[werkzeug.Response, str]:
if target_user_info.roles: if target_user_info.roles:
form.role.data = target_user_info.roles[0] form.role.data = target_user_info.roles[0]
else: else:
form.role.data = "prosody:normal" form.role.data = "prosody:user"
return await render_template( return await render_template(
"admin_edit_user.html", "admin_edit_user.html",

View File

@@ -885,7 +885,7 @@ class ProsodyClient:
localpart: str, localpart: str,
*, *,
display_name: typing.Optional[str], display_name: typing.Optional[str],
roles: typing.Optional[typing.Collection[str]], role: typing.Optional[str],
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
) -> None: ) -> None:
payload: typing.Dict[str, typing.Any] = { payload: typing.Dict[str, typing.Any] = {
@@ -893,8 +893,8 @@ class ProsodyClient:
} }
if display_name is not None: if display_name is not None:
payload["display_name"] = display_name payload["display_name"] = display_name
if roles is not None: if role is not None:
payload["roles"] = list(roles) payload["role"] = role
async with session.put( async with session.put(
self._admin_v1_endpoint("/users/{}".format(localpart)), self._admin_v1_endpoint("/users/{}".format(localpart)),

View File

@@ -3,7 +3,7 @@
{% macro access_level_description(role, caller=None) %} {% macro access_level_description(role, caller=None) %}
{%- if role == "prosody:restricted" -%} {%- if role == "prosody:restricted" -%}
{% trans %}Limited users can interact with users on the same Snikket service and be members of circles.{% endtrans %} {% trans %}Limited users can interact with users on the same Snikket service and be members of circles.{% endtrans %}
{%- elif role == "prosody:normal" -%} {%- elif role == "prosody:user" -%}
{% trans %}Like limited users and can also interact with users on other Snikket services.{% endtrans %} {% trans %}Like limited users and can also interact with users on other Snikket services.{% endtrans %}
{%- elif role == "prosody:admin" -%} {%- elif role == "prosody:admin" -%}
{% trans %}Like normal users and can access the admin panel in the web portal.{% endtrans %} {% trans %}Like normal users and can access the admin panel in the web portal.{% endtrans %}