#24437: contrib.auth @ 1.8b1 breaks existing projects / applications using
Mongoengine
------------------------------+----------------------
Reporter: silkentrance | Owner: nobody
Type: Bug | Status: new
Component: contrib.auth | Version: 1.8beta1
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
------------------------------+----------------------
The following changes in django/contrib/auth/__init__.py
{{{
root@J101829:/tmp# diff dj18a1/contrib/auth/__init__.py
dj18b1/contrib/auth/__init__.py
55a56,62
> def _get_user_session_key(request):
> # This value in the session is always serialized to a string, so we
need
> # to convert it back to Python whenever we access it.
> raise Exception(get_user_model())
> return
get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
>
>
96c103
< if request.session[SESSION_KEY] != user.pk or (
---
> if _get_user_session_key(request) != user.pk or (
105c112
< request.session[SESSION_KEY] = user.pk
---
> request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
161c168
< user_id = request.session[SESSION_KEY]
---
> user_id = _get_user_session_key(request)
}}}
2. Break existing applications / projects using Mongoengine.
Mongoengine installs a custom MongoUser that is a shim around the actual
model, which is a mongoengine document. The actual user id is a
hexadecimal number / string and might not be validated using int(),
causing the following exception
{{{
ValidationError at /backend/admin/
[u'\u201a511a1da669fe60752b000000\u201b Wert muss eine Ganzzahl sein.']
Request Method: GET
Request URL: http://XXX/login
Django Version: 1.8b1
Exception Type: ValidationError
Exception Value:
[u'\u201a511a1da669fe60752b000000\u201b Value must be an int.']
Exception Location: /usr/local/lib/python2.7/dist-
packages/django/db/models/fields/__init__.py in to_python, line 969
Python Executable: /usr/bin/uwsgi-core
Python Version: 2.7.8
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/24437>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/055.f67d61148da957a02a2c5889f082616d%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.