diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3b4a70be33ebf01ed8c37cdff7e93ceb0471aef2..52a966d9913b8eccc361c195cccdae9fc09bd962 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 f46a803b687cc9cde9a893c642586eac232fd84d..d969851a279174635d331f2a567c09715e35f00b 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()