diff --git a/hiboo/application/social.py b/hiboo/application/social.py index ab52de16021f2d93ec7bd25ca6b7db5a52e289be..feb6fc971311e26a81ea942956cc18e3ac9faa7e 100644 --- a/hiboo/application/social.py +++ b/hiboo/application/social.py @@ -81,8 +81,8 @@ class SynapseApplication(base.SAMLApplication): class RoomForm(flask_wtf.FlaskForm): roomid = fields.StringField(_("RoomID")) submit = fields.SubmitField(_("Display")) - form = RoomForm() roomid = flask.request.values.get("roomid") + form = RoomForm(data=dict(roomid=roomid)) if roomid: client = self.get_axon(service) room = client.get_room(roomid) @@ -102,6 +102,18 @@ class SynapseApplication(base.SAMLApplication): members=members, service=service ) + @base.action("Get user details", profile=True) + def get_user_details(self, profile): + """ Display some user details + """ + client = self.get_axon(profile.service) + mxid = "@" + profile.username + ":" + profile.service.config.get("domain") + user = client.get_user(mxid) + user.update(client.get_user_rooms(mxid)) + return flask.render_template( + "application_synapse/user.html", user=user, profile=profile + ) + @register("writefreely") class WriteFreelyApplication(base.OIDCApplication): diff --git a/hiboo/application/templates/application_synapse/room.html b/hiboo/application/templates/application_synapse/room.html index 3f1b8549b3d1f8cbf1d7da1f3728e8380cb36fe7..a786e3a4f60eb59d996c5055722f7b7700e566ce 100644 --- a/hiboo/application/templates/application_synapse/room.html +++ b/hiboo/application/templates/application_synapse/room.html @@ -1,6 +1,6 @@ {% import "macros.html" as macros %} {{ macros.form(form) }} -{% if room.get("room_id") %} +{% if room and room.get("room_id") %} <div class="row"> <div class="col-md-6"> <div class="table-responsive no-padding"> @@ -11,7 +11,7 @@ {% for member, profile in members.items() %} <tr> {% if profile %} - <td><a href="{{ url_for("profile.details", profile_uuid=profile.uuid) }}">{{ member }}</a></td> + <td><a href="{{ url_for("profile.action", service_uuid=service.uuid, profile_uuid=profile.uuid, action="get_user_details") }}">{{ member }}</a></td> {% else %} <td>{{ member }}</td> {% endif %} diff --git a/hiboo/application/templates/application_synapse/user.html b/hiboo/application/templates/application_synapse/user.html new file mode 100644 index 0000000000000000000000000000000000000000..80e6a003372e9aadd777ec0c46ec5f3918dc983e --- /dev/null +++ b/hiboo/application/templates/application_synapse/user.html @@ -0,0 +1,28 @@ +{% if user %} +<div class="row"> + <div class="col-md-6"> + <div class="table-responsive no-padding"> + <table class="table table-hover"> + <tr> + <th>{% trans %}Room{% endtrans %}</th> + </tr> + {% for room in user["joined_rooms"] %} + <tr> + <td><a href="{{ url_for("service.action", service_uuid=profile.service.uuid, action="get_room", roomid=room) }}">{{ room }}</a></td> + </tr> + {% endfor %} + </table> + </div> + </div> + <div class="col-md-6"> + <dl> + {% for name, value in user.items() %} + <dt>{{ name }}</dt> + <dd>{{ value }}</dd> + {% endfor %} + </dl> + </div> + </div> + </div> +</div> +{% endif %} \ No newline at end of file