From f0f4524fc576a97ebd89224e9a37485ea3b8d862 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 10 Apr 2022 16:35:05 +0200
Subject: [PATCH] Ensure that the bot user has joined the respective room

---
 aleksis/apps/matrix/models.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/aleksis/apps/matrix/models.py b/aleksis/apps/matrix/models.py
index b5c41bf..a2c19c5 100644
--- a/aleksis/apps/matrix/models.py
+++ b/aleksis/apps/matrix/models.py
@@ -184,6 +184,10 @@ class MatrixRoom(ExtensiblePolymorphicModel):
         )
         return r
 
+    def _ensure_joined(self) -> True:
+        r = do_matrix_request("POST", f"join/{self.room_id}")
+        return r
+
     @classmethod
     def get_profiles_for_group(cls, group: Group) -> QuerySet:
         """Get all profile objects for the members/owners of a group."""
@@ -247,8 +251,13 @@ class MatrixRoom(ExtensiblePolymorphicModel):
             space.sync()
         return None
 
+    def sync_room_params(self):
+        """Sync all room-specific parameters, e. g. the name."""
+        self._ensure_joined()
+
     def sync(self):
         """Sync this room."""
+        self.sync_room_params()
         self.sync_profiles()
         if get_site_preferences()["matrix__use_spaces"]:
             self.sync_space()
@@ -337,6 +346,7 @@ class MatrixSpace(MatrixRoom):
 
     def sync(self):
         """Sync this space."""
+        self.sync_room_params()
         self.ensure_children()
         self.sync_children()
         self.sync_profiles()
-- 
GitLab