diff options
| author | Luke Plant <L.Plant.98@cantab.net> | 2008-07-31 20:47:53 +0000 |
|---|---|---|
| committer | Luke Plant <L.Plant.98@cantab.net> | 2008-07-31 20:47:53 +0000 |
| commit | fcd837cd0f9b2c706bc49af509628778d442bb3f (patch) | |
| tree | 575505c64022c9dc777a5e0846c9b080e5eb3948 /django/utils | |
| parent | 9a56fe765e75e99a34cc39c82f282be68544b706 (diff) | |
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
Diffstat (limited to 'django/utils')
| -rw-r--r-- | django/utils/http.py | 29 |
1 files changed, 29 insertions, 0 deletions
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) |
