From c86ddf17adac96e83367acbc722be29e07395639 Mon Sep 17 00:00:00 2001
From: Benjamin Graillot <graillot@crans.org>
Date: Wed, 25 Mar 2020 17:54:28 +0100
Subject: [PATCH] [member] Check membership of parent club

---
 apps/member/models.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/apps/member/models.py b/apps/member/models.py
index 41f5bdf3..e5304bdd 100644
--- a/apps/member/models.py
+++ b/apps/member/models.py
@@ -4,6 +4,7 @@
 import datetime
 
 from django.conf import settings
+from django.core.exceptions import ValidationError
 from django.db import models
 from django.urls import reverse, reverse_lazy
 from django.utils.translation import gettext_lazy as _
@@ -165,6 +166,12 @@ class Membership(models.Model):
         else:
             return self.date_start.toordinal() <= datetime.datetime.now().toordinal()
 
+    def save(self, *args, **kwargs):
+        if self.club.parent_club is not None:
+            if not Membership.objects.filter(user=self.user, club=self.club.parent_club):
+				raise ValidationError(_('User is not a member of the parent club'))
+        super().save(*args, **kwargs)
+
     class Meta:
         verbose_name = _('membership')
         verbose_name_plural = _('memberships')
-- 
GitLab