diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-10-29 11:35:46 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:43:48 +0100 |
commit | fcc0bb255730d43ec2cff78fb8b948d6322a8b68 (patch) | |
tree | 5d5fc4320ccd22f8449c38dd2ed924b007f2ef6c /ishtar_common | |
parent | da5e25c0b312b2c19db6898ee0f9e54b86b9d700 (diff) | |
download | Ishtar-fcc0bb255730d43ec2cff78fb8b948d6322a8b68.tar.bz2 Ishtar-fcc0bb255730d43ec2cff78fb8b948d6322a8b68.zip |
✨ permissions refactoring: manage expiration_date
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms_common.py | 1 | ||||
-rw-r--r-- | ishtar_common/models.py | 3 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 6 |
3 files changed, 9 insertions, 1 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 22e23f3ca..734707419 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1576,6 +1576,7 @@ class ProfileForm(ManageOldType): profile_type = forms.ChoiceField(label=_("Type"), choices=[]) area = widgets.Select2MultipleField(label=_("Areas"), required=False) name = forms.CharField(label=_("Name"), required=False) + expiration_date = DateField(label=_("Expiration date"), required=False) pk = forms.IntegerField(label=" ", widget=forms.HiddenInput, required=False) TYPES = [ diff --git a/ishtar_common/models.py b/ishtar_common/models.py index e1bf3bd33..bf2cd666a 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -3611,6 +3611,9 @@ class UserProfile(models.Model): def generate_permission(self, content_type, permission_type): ishtar_user = self.person.ishtaruser + if self.expiration_date and self.expiration_date < datetime.date.today(): + return + # add base permissions for group in self.profile_type.groups.all(): for perm in group.permissions.filter( diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 1da9b9f4d..697c51156 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -2120,13 +2120,17 @@ class AccountWizard(Wizard): if not name: name = profile_type.label + expiration_date = data.get("expiration_date", None) + if profile: profile.name = name profile.profile_type = profile_type + profile.expiration_date = expiration_date profile.save() else: profile, __ = models.UserProfile.objects.get_or_create( - profile_type=profile_type, person=person, name=name + profile_type=profile_type, person=person, name=name, + expiration_date=expiration_date ) area_pks = data.get("area", None) areas = [] |