From 25aee7d3660754407340398c7ecaf6e1644a4722 Mon Sep 17 00:00:00 2001
From: Christian Elberfeld <christian.elberfeld@adesso.de>
Date: Mon, 27 Jan 2020 20:21:24 +0100
Subject: [PATCH] Fix Synapse 1.9.0 Upgrade problem:
 https://github.com/matrix-org/synapse/issues/6772

---
 webserver/docker_matrix/tasks/main.yml                 |  5 +++--
 webserver/docker_matrix/templates/Dockerfile           |  4 ++++
 webserver/docker_matrix/templates/docker-compose.yml   |  3 ++-
 .../synapse-data/synapse-1.9.0-ldap-fix.patch          | 10 ++++++++++
 4 files changed, 19 insertions(+), 3 deletions(-)
 create mode 100644 webserver/docker_matrix/templates/synapse-data/synapse-1.9.0-ldap-fix.patch

diff --git a/webserver/docker_matrix/tasks/main.yml b/webserver/docker_matrix/tasks/main.yml
index 8982c824..6d961148 100644
--- a/webserver/docker_matrix/tasks/main.yml
+++ b/webserver/docker_matrix/tasks/main.yml
@@ -29,16 +29,17 @@
     - mxisd-config/mxisd.yaml
     - synapse-data/homeserver.log.config
     - synapse-data/homeserver.yaml
+    - synapse-data/synapse-1.9.0-ldap-fix.patch
   register: configs
 
 
 - name: stop matrix docker
-  docker_service:
+  docker_compose:
     project_src: /srv/matrix/
     state: absent
   when: configs.changed
 
 - name: start matrix docker
-  docker_service:
+  docker_compose:
     project_src: /srv/matrix/
     state: present
diff --git a/webserver/docker_matrix/templates/Dockerfile b/webserver/docker_matrix/templates/Dockerfile
index e53e8e07..0f28cf67 100644
--- a/webserver/docker_matrix/templates/Dockerfile
+++ b/webserver/docker_matrix/templates/Dockerfile
@@ -3,3 +3,7 @@ FROM matrixdotorg/synapse:v1.9.0-py3
 RUN apk add curl 
 RUN export PYTHON_MINOR_VERSION=$(echo "${PYTHON_VERSION}" | rev | cut -d"." -f2-  | rev) ; \
     curl https://raw.githubusercontent.com/kamax-matrix/matrix-synapse-rest-auth/master/rest_auth_provider.py -o /usr/local/lib/python${PYTHON_MINOR_VERSION}/site-packages/rest_auth_provider.py
+
+# Fix Synapse 1.9.0 Problem: https://github.com/matrix-org/synapse/issues/6772
+COPY synapse-data/synapse-1.9.0-ldap-fix.patch /synapse-1.9.0-ldap-fix.patch 
+RUN cd /usr/local/lib/python3.7/site-packages/synapse/module_api && patch < /synapse-1.9.0-ldap-fix.patch
diff --git a/webserver/docker_matrix/templates/docker-compose.yml b/webserver/docker_matrix/templates/docker-compose.yml
index 2402fd63..77aca756 100644
--- a/webserver/docker_matrix/templates/docker-compose.yml
+++ b/webserver/docker_matrix/templates/docker-compose.yml
@@ -30,7 +30,8 @@ services:
       SYNAPSE_CONFIG_PATH: "/data/homeserver.yaml" 
 
   mxisd:
-
+    
+    # TODO: Migrate to https://github.com/ma1uta/ma1sd
     image: kamax/mxisd:1.4.6
     restart: always
     ports:
diff --git a/webserver/docker_matrix/templates/synapse-data/synapse-1.9.0-ldap-fix.patch b/webserver/docker_matrix/templates/synapse-data/synapse-1.9.0-ldap-fix.patch
new file mode 100644
index 00000000..45b0a13c
--- /dev/null
+++ b/webserver/docker_matrix/templates/synapse-data/synapse-1.9.0-ldap-fix.patch
@@ -0,0 +1,10 @@
+--- __init__.py
++++ __init__.py
+@@ -37,6 +37,7 @@ class ModuleApi(object):
+ 
+     def __init__(self, hs, auth_handler):
+         self._hs = hs
++        self.hs = hs
+ 
+         self._store = hs.get_datastore()
+         self._auth = hs.get_auth()
\ No newline at end of file
-- 
GitLab