8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-05 01:16:27 +00:00
This commit is contained in:
Gabriel Detraz 2018-07-19 20:37:01 +02:00
parent cfa6fe097d
commit 11a59ee553
2 changed files with 12 additions and 12 deletions

View file

@ -479,16 +479,19 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
interface.save() interface.save()
def archive(self): def archive(self):
""" Archive l'user : appelle unassign_ips() puis passe state à """ Archive l'user"""
ARCHIVE"""
self.unassign_ips() self.unassign_ips()
self.state = User.STATE_ARCHIVE
def unarchive(self): def unarchive(self):
""" Désarchive l'user : réassigne ses ip et le passe en state """ Désarchive l'user"""
ACTIVE"""
self.assign_ips() self.assign_ips()
self.state = User.STATE_ACTIVE
def state_sync(self):
"""Archive, or unarchive, if the user was not active/or archived before"""
if self.__original_state != self.STATE_ACTIVE and self.state == self.STATE_ACTIVE:
self.unarchive()
elif self.__original_state != self.STATE_ARCHIVE and self.state == self.STATE_ARCHIVE:
self.archive()
def ldap_sync(self, base=True, access_refresh=True, mac_refresh=True, def ldap_sync(self, base=True, access_refresh=True, mac_refresh=True,
group_refresh=False): group_refresh=False):
@ -879,6 +882,7 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
'force': self.can_change_force, 'force': self.can_change_force,
'selfpasswd': self.check_selfpasswd, 'selfpasswd': self.check_selfpasswd,
} }
self.__original_state = self.state
def __str__(self): def __str__(self):
return self.pseudo return self.pseudo
@ -1007,6 +1011,7 @@ def user_post_save(**kwargs):
user = kwargs['instance'] user = kwargs['instance']
if is_created: if is_created:
user.notif_inscription() user.notif_inscription()
user.state_sync()
user.ldap_sync( user.ldap_sync(
base=True, base=True,
access_refresh=True, access_refresh=True,

View file

@ -221,15 +221,10 @@ def edit_info(request, user, userid):
@login_required @login_required
@can_edit(User, 'state') @can_edit(User, 'state')
def state(request, user, userid): def state(request, user, userid):
""" Changer l'etat actif/desactivé/archivé d'un user, """ Changer l'etat actif/desactivé/archivé d'un user"""
need droit bureau """
state_form = StateForm(request.POST or None, instance=user) state_form = StateForm(request.POST or None, instance=user)
if state_form.is_valid(): if state_form.is_valid():
if state_form.changed_data: if state_form.changed_data:
if state_form.cleaned_data['state'] == User.STATE_ARCHIVE:
user.archive()
elif state_form.cleaned_data['state'] == User.STATE_ACTIVE:
user.unarchive()
state_form.save() state_form.save()
messages.success(request, "Etat changé avec succès") messages.success(request, "Etat changé avec succès")
return redirect(reverse( return redirect(reverse(