From fcd837cd0f9b2c706bc49af509628778d442bb3f Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Thu, 31 Jul 2008 20:47:53 +0000 Subject: Fixed #7723 - implemented a secure password reset form that uses a token and prompts user for new password. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8162 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/http.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'django/utils') diff --git a/django/utils/http.py b/django/utils/http.py index 5ec6e92d28..7d2af95c47 100644 --- a/django/utils/http.py +++ b/django/utils/http.py @@ -65,3 +65,32 @@ def http_date(epoch_seconds=None): """ rfcdate = formatdate(epoch_seconds) return '%s GMT' % rfcdate[:25] + +# Base 36 functions: useful for generating compact URLs + +def base36_to_int(s): + """ + Convertd a base 36 string to an integer + """ + return int(s, 36) + +def int_to_base36(i): + """ + Converts an integer to a base36 string + """ + digits = "0123456789abcdefghijklmnopqrstuvwxyz" + factor = 0 + # Find starting factor + while True: + factor += 1 + if i < 36 ** factor: + factor -= 1 + break + base36 = [] + # Construct base36 representation + while factor >= 0: + j = 36 ** factor + base36.append(digits[i / j]) + i = i % j + factor -= 1 + return ''.join(base36) -- cgit v1.3