diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-11-24 18:25:42 +0100 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-11-29 21:45:43 +0100 |
| commit | 0eeae15056edf07f786d3be5b47c14ab62eacd31 (patch) | |
| tree | a89c50708cee38e3c0d7f15d11c782b7c557f5b8 /django | |
| parent | d913a8b41281c506451156bdebc9a1851cb49fae (diff) | |
Fixed #19354 -- Do not assume usermodel.pk == usermodel.id
Thanks markteisman at hotmail.com for the report.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/options.py | 2 | ||||
| -rw-r--r-- | django/contrib/auth/__init__.py | 4 | ||||
| -rw-r--r-- | django/contrib/auth/forms.py | 2 | ||||
| -rw-r--r-- | django/contrib/auth/tests/templates/context_processors/auth_attrs_user.html | 2 | ||||
| -rw-r--r-- | django/contrib/auth/tokens.py | 2 | ||||
| -rw-r--r-- | django/contrib/auth/views.py | 2 |
6 files changed, 7 insertions, 7 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 8543c0ad54..c48ffa6ca3 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -552,7 +552,7 @@ class ModelAdmin(BaseModelAdmin): """ from django.contrib.admin.models import LogEntry, DELETION LogEntry.objects.log_action( - user_id = request.user.id, + user_id = request.user.pk, content_type_id = ContentType.objects.get_for_model(self.model).pk, object_id = object.pk, object_repr = object_repr, diff --git a/django/contrib/auth/__init__.py b/django/contrib/auth/__init__.py index 5dbda44501..99348d3ae5 100644 --- a/django/contrib/auth/__init__.py +++ b/django/contrib/auth/__init__.py @@ -84,14 +84,14 @@ def login(request, user): user = request.user # TODO: It would be nice to support different login methods, like signed cookies. if SESSION_KEY in request.session: - if request.session[SESSION_KEY] != user.id: + if request.session[SESSION_KEY] != user.pk: # To avoid reusing another user's session, create a new, empty # session if the existing session corresponds to a different # authenticated user. request.session.flush() else: request.session.cycle_key() - request.session[SESSION_KEY] = user.id + request.session[SESSION_KEY] = user.pk request.session[BACKEND_SESSION_KEY] = user.backend if hasattr(request, 'user'): request.user = user diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index 9279c52675..10d9eca3c3 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -241,7 +241,7 @@ class PasswordResetForm(forms.Form): 'email': user.email, 'domain': domain, 'site_name': site_name, - 'uid': int_to_base36(user.id), + 'uid': int_to_base36(user.pk), 'user': user, 'token': token_generator.make_token(user), 'protocol': use_https and 'https' or 'http', diff --git a/django/contrib/auth/tests/templates/context_processors/auth_attrs_user.html b/django/contrib/auth/tests/templates/context_processors/auth_attrs_user.html index aa7f784405..dc4c6b17c1 100644 --- a/django/contrib/auth/tests/templates/context_processors/auth_attrs_user.html +++ b/django/contrib/auth/tests/templates/context_processors/auth_attrs_user.html @@ -1,4 +1,4 @@ unicode: {{ user }} -id: {{ user.id }} +id: {{ user.pk }} username: {{ user.username }} url: {% url 'userpage' user %} diff --git a/django/contrib/auth/tokens.py b/django/contrib/auth/tokens.py index 930c70012b..6e5bfe7d9d 100644 --- a/django/contrib/auth/tokens.py +++ b/django/contrib/auth/tokens.py @@ -58,7 +58,7 @@ class PasswordResetTokenGenerator(object): # Ensure results are consistent across DB backends login_timestamp = user.last_login.replace(microsecond=0, tzinfo=None) - value = (six.text_type(user.id) + user.password + + value = (six.text_type(user.pk) + user.password + six.text_type(login_timestamp) + six.text_type(timestamp)) hash = salted_hmac(key_salt, value).hexdigest()[::2] return "%s-%s" % (ts_b36, hash) diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index d27e2f5aba..2562a639b7 100644 --- a/django/contrib/auth/views.py +++ b/django/contrib/auth/views.py @@ -206,7 +206,7 @@ def password_reset_confirm(request, uidb36=None, token=None, post_reset_redirect = reverse('django.contrib.auth.views.password_reset_complete') try: uid_int = base36_to_int(uidb36) - user = UserModel.objects.get(id=uid_int) + user = UserModel.objects.get(pk=uid_int) except (ValueError, OverflowError, UserModel.DoesNotExist): user = None |
