From a014c476e601b5bcf7cf6fac83fa9b49069af49f Mon Sep 17 00:00:00 2001 From: Artur Borecki Date: Thu, 12 Mar 2026 13:51:21 +0100 Subject: [PATCH] feat(home/models.py): add `user_has_access` property to `CoursePage` --- home/models.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/home/models.py b/home/models.py index 0a5ab49..8ee4d20 100644 --- a/home/models.py +++ b/home/models.py @@ -20,6 +20,17 @@ class CoursePage(Page): help_text="Select a group to restrict access to this course. Non-members will be prompted to purchase the course to view modules.", ) + def _user_has_access(self, user): + if not user.is_authenticated: + return False + user_group_ids = user.groups.values_list("id", flat=True) + return self.allowed_groups.filter(id__in=user_group_ids).exists() + + def get_context(self, request): + context = super().get_context(request) + context["user_has_access"] = self._user_has_access(request.user) + return context + content_panels = Page.content_panels + [ FieldPanel("body"), FieldPanel("allowed_groups", widget=CheckboxSelectMultiple),