diff options
| author | Anssi Kääriäinen <akaariai@gmail.com> | 2012-04-30 21:35:04 +0300 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2012-04-30 22:10:27 +0300 |
| commit | 2a09404792f9d369718143fdfbe9530fe2e60912 (patch) | |
| tree | 6f37bd02c64dff33cfb07a2979dd374f8529f67e | |
| parent | ddfc7c2530197112fb105b6dd237574bc2fd6b49 (diff) | |
Reset password hashers cache on settings_changed.
| -rw-r--r-- | django/contrib/auth/hashers.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py index 58246852a8..52d204cce6 100644 --- a/django/contrib/auth/hashers.py +++ b/django/contrib/auth/hashers.py @@ -1,6 +1,8 @@ import hashlib +from django.dispatch import receiver from django.conf import settings +from django.test.signals import setting_changed from django.utils import importlib from django.utils.datastructures import SortedDict from django.utils.encoding import smart_str @@ -14,6 +16,13 @@ UNUSABLE_PASSWORD = '!' # This will never be a valid encoded hash HASHERS = None # lazily loaded from PASSWORD_HASHERS PREFERRED_HASHER = None # defaults to first item in PASSWORD_HASHERS +@receiver(setting_changed) +def reset_hashers(**kwargs): + if kwargs['setting'] == 'PASSWORD_HASHERS': + global HASHERS, PREFERRED_HASHER + HASHERS = None + PREFERRED_HASHER = None + def is_password_usable(encoded): return (encoded is not None and encoded != UNUSABLE_PASSWORD) |
