[GH-ISSUE #141] crash when trying to reset password #130

Closed
opened 2026-02-26 09:35:56 +03:00 by kerem · 4 comments
Owner

Originally created by @ThomasWaldmann on GitHub (Jan 26, 2014).
Original GitHub issue: https://github.com/nsupdate-info/nsupdate.info/issues/141

Traceback (most recent call last):

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
    response = view_func(request, *args, **kwargs)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/contrib/auth/views.py", line 158, in password_reset
    form.save(**opts)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 256, in save
    email = loader.render_to_string(email_template_name, c)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/loader.py", line 164, in render_to_string
    return t.render(Context(dictionary))

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
    return self._render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
    return node.render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 36, in render
    output = self.nodelist.render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
    return node.render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 53, in render
    result = self.nodelist.render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
    return node.render(context)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 447, in render
    six.reraise(*exc_info)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 433, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 509, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))

  File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 429, in _reverse_with_prefix
    (lookup_view_s, args, kwargs, len(patterns), patterns))

NoReverseMatch: Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'token': u'3ol-4d9242ed1a45500d2e55', u'uidb64': 'MTEy'}' not found. 1 pattern(s) tried: ['accounts/password_reset_confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$']


<WSGIRequest
path:/accounts/password_reset/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'csrfmiddlewaretoken': [u'XXEy1JhNEsNpShR3IZrZmdKklcRjELWw'], u'email': [u'tw+test333@waldmann-edv.de']}>,
COOKIES:{'csrftoken': 'XXEy1JhNEsNpShR3IZrZmdKklcRjELWw',
 'sessionid': 'krtp7500icverda04lm81ryzevnhnmr4'},
META:{'CONTENT_LENGTH': '89',
 'CONTENT_TYPE': 'application/x-www-form-urlencoded',
 u'CSRF_COOKIE': u'XXEy1JhNEsNpShR3IZrZmdKklcRjELWw',
 'DOCUMENT_ROOT': '/srv/nsupdate.info/htdocs',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'de,de-at;q=0.8,en-us;q=0.5,en;q=0.3',
 'HTTP_CONNECTION': 'close',
 'HTTP_CONTENT_LENGTH': '89',
 'HTTP_CONTENT_TYPE': 'application/x-www-form-urlencoded',
 'HTTP_COOKIE': 'csrftoken=XXEy1JhNEsNpShR3IZrZmdKklcRjELWw; sessionid=krtp7500icverda04lm81ryzevnhnmr4',
 'HTTP_HOST': 'nsupdate.info',
 'HTTP_REFERER': 'https://nsupdate.info/accounts/password_reset/',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0',
 'HTTP_X_FORWARDED_FOR': '46.237.210.69',
 'HTTP_X_FORWARDED_PROTO': 'https',
 'HTTP_X_REAL_IP': '46.237.210.69',
 'PATH_INFO': u'/accounts/password_reset/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '46.237.210.69',
 'REMOTE_PORT': '',
 'REQUEST_METHOD': 'POST',
 'REQUEST_URI': '/accounts/password_reset/',
 u'SCRIPT_NAME': u'',
 'SERVER_NAME': 'nsupdate.info',
 'SERVER_PORT': '80',
 'SERVER_PROTOCOL': 'HTTP/1.0',
 'UWSGI_APPID': 'nsupdate',
 'UWSGI_SCHEME': 'https',
 'uwsgi.node': 'web.thinkmo.de',
 'uwsgi.version': '1.9.17.1-debian',
 'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0x1f0b420>,
 'wsgi.file_wrapper': <built-in function uwsgi_sendfile>,
 'wsgi.input': <uwsgi._Input object at 0x2fb7660>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': False,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'https',
 'wsgi.version': (1, 0)}>

This code is now live on the site, fix needed urgently...

Originally created by @ThomasWaldmann on GitHub (Jan 26, 2014). Original GitHub issue: https://github.com/nsupdate-info/nsupdate.info/issues/141 ``` Traceback (most recent call last): File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 99, in _wrapped_view response = view_func(request, *args, **kwargs) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/contrib/auth/views.py", line 158, in password_reset form.save(**opts) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 256, in save email = loader.render_to_string(email_template_name, c) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/loader.py", line 164, in render_to_string return t.render(Context(dictionary)) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render return self._render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render return self.nodelist.render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render bit = self.render_node(node, context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node return node.render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 36, in render output = self.nodelist.render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render bit = self.render_node(node, context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node return node.render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 53, in render result = self.nodelist.render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render bit = self.render_node(node, context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node return node.render(context) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 447, in render six.reraise(*exc_info) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 433, in render url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 509, in reverse return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) File "/srv/nsupdate.info/env/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 429, in _reverse_with_prefix (lookup_view_s, args, kwargs, len(patterns), patterns)) NoReverseMatch: Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'token': u'3ol-4d9242ed1a45500d2e55', u'uidb64': 'MTEy'}' not found. 1 pattern(s) tried: ['accounts/password_reset_confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$'] <WSGIRequest path:/accounts/password_reset/, GET:<QueryDict: {}>, POST:<QueryDict: {u'csrfmiddlewaretoken': [u'XXEy1JhNEsNpShR3IZrZmdKklcRjELWw'], u'email': [u'tw+test333@waldmann-edv.de']}>, COOKIES:{'csrftoken': 'XXEy1JhNEsNpShR3IZrZmdKklcRjELWw', 'sessionid': 'krtp7500icverda04lm81ryzevnhnmr4'}, META:{'CONTENT_LENGTH': '89', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', u'CSRF_COOKIE': u'XXEy1JhNEsNpShR3IZrZmdKklcRjELWw', 'DOCUMENT_ROOT': '/srv/nsupdate.info/htdocs', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'HTTP_ACCEPT_LANGUAGE': 'de,de-at;q=0.8,en-us;q=0.5,en;q=0.3', 'HTTP_CONNECTION': 'close', 'HTTP_CONTENT_LENGTH': '89', 'HTTP_CONTENT_TYPE': 'application/x-www-form-urlencoded', 'HTTP_COOKIE': 'csrftoken=XXEy1JhNEsNpShR3IZrZmdKklcRjELWw; sessionid=krtp7500icverda04lm81ryzevnhnmr4', 'HTTP_HOST': 'nsupdate.info', 'HTTP_REFERER': 'https://nsupdate.info/accounts/password_reset/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0', 'HTTP_X_FORWARDED_FOR': '46.237.210.69', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '46.237.210.69', 'PATH_INFO': u'/accounts/password_reset/', 'QUERY_STRING': '', 'REMOTE_ADDR': '46.237.210.69', 'REMOTE_PORT': '', 'REQUEST_METHOD': 'POST', 'REQUEST_URI': '/accounts/password_reset/', u'SCRIPT_NAME': u'', 'SERVER_NAME': 'nsupdate.info', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'UWSGI_APPID': 'nsupdate', 'UWSGI_SCHEME': 'https', 'uwsgi.node': 'web.thinkmo.de', 'uwsgi.version': '1.9.17.1-debian', 'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0x1f0b420>, 'wsgi.file_wrapper': <built-in function uwsgi_sendfile>, 'wsgi.input': <uwsgi._Input object at 0x2fb7660>, 'wsgi.multiprocess': False, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'https', 'wsgi.version': (1, 0)}> ``` This code is now live on the site, fix needed urgently...
kerem 2026-02-26 09:35:56 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@elnappo commented on GitHub (Jan 26, 2014):

okay, this is because a change in django 1.6 https://docs.djangoproject.com/en/dev/releases/1.6/#django-contrib-auth-password-reset-uses-base-64-encoding-of-user-pk
If you replace r'^password_reset_confirm/(?P[0-9A-Za-z]{1,13})-(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$' in nsupdate.info / nsupdate / login / urls.py with r'^password_reset_confirm/(?P[0-9A-Za-z_-]+)/(?P.+)/$' this should work in django 1.6 but not on django 1.5. hope that helps, im sorry :(

<!-- gh-comment-id:33318216 --> @elnappo commented on GitHub (Jan 26, 2014): okay, this is because a change in django 1.6 https://docs.djangoproject.com/en/dev/releases/1.6/#django-contrib-auth-password-reset-uses-base-64-encoding-of-user-pk If you replace r'^password_reset_confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$' in nsupdate.info / nsupdate / login / urls.py with r'^password_reset_confirm/(?P<uidb64>[0-9A-Za-z_-]+)/(?P<token>.+)/$' this _should_ work in django 1.6 but not on django 1.5. hope that helps, im sorry :(
Author
Owner

@elnappo commented on GitHub (Jan 26, 2014):

in nsupdate / login / templates / password_reset.html is a "{" missing at {% block title %}% trans "Password reset" %}{% endblock %} maybe you can fix this too. sorry

<!-- gh-comment-id:33318614 --> @elnappo commented on GitHub (Jan 26, 2014): in nsupdate / login / templates / password_reset.html is a "{" missing at {% block title %}% trans "Password reset" %}{% endblock %} maybe you can fix this too. sorry
Author
Owner

@ThomasWaldmann commented on GitHub (Jan 26, 2014):

typo in template fixed.

<!-- gh-comment-id:33320673 --> @ThomasWaldmann commented on GitHub (Jan 26, 2014): typo in template fixed.
Author
Owner

@ThomasWaldmann commented on GitHub (Jan 26, 2014):

fixed for django 1.6.1, see e42bf56de7

but now broken for 1.5.x

<!-- gh-comment-id:33321158 --> @ThomasWaldmann commented on GitHub (Jan 26, 2014): fixed for django 1.6.1, see e42bf56de7d28d2084e6a9fa169aeeff7dcdfda4 but now broken for 1.5.x
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nsupdate.info-nsupdate-info#130
No description provided.