diff --git a/hiboo/application/social.py b/hiboo/application/social.py index e891d604602158a134bbcab544edd67b51bb6274..ab52de16021f2d93ec7bd25ca6b7db5a52e289be 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 09b2155ea892f07bf72c19eb51fe0999f94e9eb7..3f1b8549b3d1f8cbf1d7da1f3728e8380cb36fe7 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>