From 29019828bdb0f6bb0bcb90cf47cc9da51d941570 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Wed, 26 Jan 2022 22:07:01 +0100 Subject: [PATCH] Re-sync groups to Django on user change --- CHANGELOG.rst | 1 + aleksis/core/models.py | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3b4a70be3..52a966d99 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,7 @@ Fixed * PDF generation failed with S3 storage due to incompatibility with boto3 * Form for editing group type displayed irrelevant fields +* Permission groups could get outdated if re-assigning a user account to a different person `2.7`_ - 2022-01-24 ------------------- diff --git a/aleksis/core/models.py b/aleksis/core/models.py index f46a803b6..d969851a2 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -316,7 +316,7 @@ class Person(ExtensibleModel): def initials(self): return f"{self.first_name[0]}{self.last_name[0]}".upper() - user_info_tracker = FieldTracker(fields=("first_name", "last_name", "email")) + user_info_tracker = FieldTracker(fields=("first_name", "last_name", "email", "user")) @property def member_of_recursive(self) -> QuerySet: @@ -347,6 +347,10 @@ class Person(ExtensibleModel): self.user.email = self.email self.user.save() + # Synchronise groups to Django + for group in self.member_of.all(): + group.save() + # Select a primary group if none is set self.auto_select_primary_group() -- GitLab