From 52c8a836f19528f766f72d266498b18a15272038 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Sat, 31 Oct 2020 13:41:16 +0100 Subject: [PATCH] Automatically invite a new registered user into public Matrix rooms --- apps/registration/apps.py | 4 +++- apps/registration/signals.py | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/registration/apps.py b/apps/registration/apps.py index 7b1e19d..4c681a5 100644 --- a/apps/registration/apps.py +++ b/apps/registration/apps.py @@ -9,7 +9,9 @@ class RegistrationConfig(AppConfig): name = 'registration' def ready(self): - from registration.signals import set_username, send_email_link, create_admin_registration + from registration.signals import create_admin_registration, invite_to_public_rooms, \ + set_username, send_email_link pre_save.connect(set_username, "auth.User") pre_save.connect(send_email_link, "auth.User") post_save.connect(create_admin_registration, "auth.User") + post_save.connect(invite_to_public_rooms, "registration.Registration") diff --git a/apps/registration/signals.py b/apps/registration/signals.py index 57d440a..78d9dfa 100644 --- a/apps/registration/signals.py +++ b/apps/registration/signals.py @@ -1,6 +1,7 @@ from corres2math.lists import get_sympa_client from django.contrib.auth.models import User +from corres2math.matrix import Matrix from .models import AdminRegistration, Registration @@ -38,3 +39,12 @@ def create_admin_registration(instance, **_): """ if instance.is_superuser: AdminRegistration.objects.get_or_create(user=instance) + + +def invite_to_public_rooms(instance: Registration, **_): + """ + When a user got registered, automatically invite the Matrix user into public rooms. + """ + if not instance.pk: + Matrix.invite("#annonces:correspondances-maths.fr", f"@{instance.matrix_username}:correspondances-maths.fr") + Matrix.invite("#faq:correspondances-maths.fr", f"@{instance.matrix_username}:correspondances-maths.fr")