You've already forked snikket-web-portal
Merge pull request #152 from snikket-im/fix/role-config
Follow new role scheme in Prosody
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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)),
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|||||||
Reference in New Issue
Block a user