From 941e3e6e60ec9000131e55cc5a5b481b82c2bd8a Mon Sep 17 00:00:00 2001 From: kaiyou <pierre@jaury.eu> Date: Wed, 16 Dec 2020 17:23:57 +0100 Subject: [PATCH] Display links to Matrix profiles --- hiboo/application/social.py | 13 +++++++++++-- .../templates/application_synapse/room.html | 6 +++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/hiboo/application/social.py b/hiboo/application/social.py index e891d60..ab52de1 100644 --- a/hiboo/application/social.py +++ b/hiboo/application/social.py @@ -36,6 +36,7 @@ class SynapseApplication(base.SAMLApplication): class Form(base.BaseForm): application_uri = fields.StringField(_("Synapse homeserver URL"), [validators.URL(require_tld=False)]) + domain = fields.StringField(_("Synapse hosted domain")) admin_token = fields.StringField(_("Synapse administrator token")) submit = fields.SubmitField(_('Submit')) @@ -85,12 +86,20 @@ class SynapseApplication(base.SAMLApplication): if roomid: client = self.get_axon(service) room = client.get_room(roomid) - members = client.get_room_members(roomid) + members = {} + suffix = ":" + service.config.get("domain") + for member in client.get_room_members(roomid).get("members", []): + if member.endswith(suffix): + members[member] = service.profiles.filter_by( + username=member[1:-len(suffix)] + ).first() + else: + members[member] = None else: room = members = None return flask.render_template( "application_synapse/room.html", form=form, room=room, - members=members + members=members, service=service ) diff --git a/hiboo/application/templates/application_synapse/room.html b/hiboo/application/templates/application_synapse/room.html index 09b2155..3f1b854 100644 --- a/hiboo/application/templates/application_synapse/room.html +++ b/hiboo/application/templates/application_synapse/room.html @@ -8,9 +8,13 @@ <tr> <th>{% trans %}Member{% endtrans %}</th> </tr> - {% for member in members["members"] %} + {% for member, profile in members.items() %} <tr> + {% if profile %} + <td><a href="{{ url_for("profile.details", profile_uuid=profile.uuid) }}">{{ member }}</a></td> + {% else %} <td>{{ member }}</td> + {% endif %} </tr> {% endfor %} </table> -- GitLab