diff --git a/apps/users/signal_handlers.py b/apps/users/signal_handlers.py index 313f3f888..f708483f3 100644 --- a/apps/users/signal_handlers.py +++ b/apps/users/signal_handlers.py @@ -65,22 +65,15 @@ def user_authenticated_handle(user, created, source, attrs=None, **kwargs): @receiver(post_save, sender=User) def save_passwd_change(sender, instance: User, **kwargs): - if instance.source != User.Source.local.value: + if instance.source != User.Source.local.value or not instance.password: return passwords = UserPasswordHistory.objects \ .filter(user=instance) \ .order_by('-date_created') \ - .values_list('password', flat=True) - passwords = passwords[:int(settings.OLD_PASSWORD_HISTORY_LIMIT_COUNT)] + .values_list('password', flat=True)[:settings.OLD_PASSWORD_HISTORY_LIMIT_COUNT] - if not passwords: - return - - for p in passwords: - if instance.password == p: - break - else: + if instance.password not in list(passwords): UserPasswordHistory.objects.create( user=instance, password=instance.password, date_created=instance.date_password_last_updated