8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-30 08:32:26 +00:00

[Users] Archive an account disables email account and redirection

This commit is contained in:
Maxime Bombar 2018-10-31 16:30:56 +01:00
parent e4f877bbea
commit 94a30cd234
2 changed files with 14 additions and 2 deletions

View file

@ -530,6 +530,12 @@ class StateForm(FormRevMixin, ModelForm):
prefix = kwargs.pop('prefix', self.Meta.model.__name__) prefix = kwargs.pop('prefix', self.Meta.model.__name__)
super(StateForm, self).__init__(*args, prefix=prefix, **kwargs) super(StateForm, self).__init__(*args, prefix=prefix, **kwargs)
def save(self, commit=True):
user = super(StateForm, self).save(commit=False)
if self.cleaned_data['state']:
user.state=self.cleaned_data.get('state')
user.state_sync()
user.save()
class GroupForm(FieldPermissionFormMixin, FormRevMixin, ModelForm): class GroupForm(FieldPermissionFormMixin, FormRevMixin, ModelForm):
""" Gestion des groupes d'un user""" """ Gestion des groupes d'un user"""

View file

@ -543,9 +543,16 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
reversion.set_comment(_("IPv4 unassigning")) reversion.set_comment(_("IPv4 unassigning"))
interface.save() interface.save()
def disable_email(self):
"""Disable email account and redirection"""
self.email = ""
self.local_email_enabled = False
self.local_email_redirect = False
def archive(self): def archive(self):
""" Filling the user; no more active""" """ Filling the user; no more active"""
self.unassign_ips() self.unassign_ips()
self.disable_email()
def unarchive(self): def unarchive(self):
"""Unfilling the user""" """Unfilling the user"""
@ -1017,7 +1024,7 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
.filter(local_part=self.pseudo.lower()).exclude(user_id=self.id) .filter(local_part=self.pseudo.lower()).exclude(user_id=self.id)
): ):
raise ValidationError("This pseudo is already in use.") raise ValidationError("This pseudo is already in use.")
if not self.local_email_enabled and not self.email: if not self.local_email_enabled and not self.email and not (self.state == self.STATE_ARCHIVE):
raise ValidationError( raise ValidationError(
{'email': ( {'email': (
_("There is neither a local email address nor an external" _("There is neither a local email address nor an external"
@ -1885,4 +1892,3 @@ class EMailAddress(RevMixin, AclMixin, models.Model):
if "@" in self.local_part: if "@" in self.local_part:
raise ValidationError(_("The local part must not contain @.")) raise ValidationError(_("The local part must not contain @."))
super(EMailAddress, self).clean(*args, **kwargs) super(EMailAddress, self).clean(*args, **kwargs)