8
0
Fork 0
mirror of https://gitlab.federez.net/re2o/re2o synced 2024-06-01 07:22:25 +00:00

Merge branch 'fix_126' into 'master'

Fix #126

Closes #126

See merge request federez/re2o!188
This commit is contained in:
klafyvel 2018-07-22 13:16:55 +02:00
commit f6a152f033
2 changed files with 12 additions and 12 deletions

View file

@ -487,16 +487,19 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
interface.save()
def archive(self):
""" Archive l'user : appelle unassign_ips() puis passe state à
ARCHIVE"""
""" Filling the user; no more active"""
self.unassign_ips()
self.state = User.STATE_ARCHIVE
def unarchive(self):
""" Désarchive l'user : réassigne ses ip et le passe en state
ACTIVE"""
"""Unfilling the user"""
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,
group_refresh=False):
@ -884,6 +887,7 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
'force': self.can_change_force,
'selfpasswd': self.check_selfpasswd,
}
self.__original_state = self.state
def __str__(self):
return self.pseudo
@ -1012,6 +1016,7 @@ def user_post_save(**kwargs):
user = kwargs['instance']
if is_created:
user.notif_inscription()
user.state_sync()
user.ldap_sync(
base=True,
access_refresh=True,

View file

@ -221,15 +221,10 @@ def edit_info(request, user, userid):
@login_required
@can_edit(User, 'state')
def state(request, user, userid):
""" Changer l'etat actif/desactivé/archivé d'un user,
need droit bureau """
""" Change the state (active/unactive/archived) of a user"""
state_form = StateForm(request.POST or None, instance=user)
if state_form.is_valid():
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()
messages.success(request, "Etat changé avec succès")
return redirect(reverse(