From 6315ddf6b8e3c048f1b62a78c08a80d56f856440 Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Tue, 10 Jan 2017 12:58:35 -0200 Subject: [PATCH] move pwd change to method Signed-off-by: Ludovic Stephan --- kfet/models.py | 7 +++++++ kfet/views.py | 11 +++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/kfet/models.py b/kfet/models.py index 419cd0a0..bf47356c 100644 --- a/kfet/models.py +++ b/kfet/models.py @@ -154,6 +154,7 @@ class Account(models.Model): # - Enregistre User, CofProfile à partir de "data" # - Enregistre Account def save(self, data = {}, *args, **kwargs): + if self.pk and data: # Account update @@ -200,6 +201,12 @@ class Account(models.Model): self.cofprofile = cof super(Account, self).save(*args, **kwargs) + def change_pwd(self, pwd): + pwd_sha256 = hashlib.sha256(pwd.encode('utf-8'))\ + .hexdigest() + self.password = pwd_sha256 + self.save() + # Surcharge de delete # Pas de suppression possible # Cas à régler plus tard diff --git a/kfet/views.py b/kfet/views.py index 0a8771d7..0f706085 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -421,10 +421,7 @@ def account_update(request, trigramme): if (request.user.has_perm('kfet.change_account_password') and pwd_form.is_valid()): pwd = pwd_form.cleaned_data['pwd1'] - pwd_sha256 = hashlib.sha256(pwd.encode('utf-8'))\ - .hexdigest() - Account.objects.filter(pk=account.pk).update( - password=pwd_sha256) + account.change_pwd(pwd) messages.success(request, 'Mot de passe mis à jour') # Checking perm to manage perms @@ -459,6 +456,7 @@ def account_update(request, trigramme): 'Informations du compte %s mises à jour' % account.trigramme) + # Modification de ses propres informations if request.user == account.user: missing_perm = False account.refresh_from_db() @@ -476,10 +474,7 @@ def account_update(request, trigramme): if request.user.has_perm('kfet.is_team') \ and pwd_form.is_valid(): pwd = pwd_form.cleaned_data['pwd1'] - pwd_sha256 = hashlib.sha256(pwd.encode('utf-8'))\ - .hexdigest() - Account.objects.filter(pk=account.pk).update( - password=pwd_sha256) + account.change_pwd(pwd) messages.success( request, 'Votre mot de passe a été mis à jour')