Django

Code

Changeset 5998

Show
Ignore:
Timestamp:
08/24/07 08:16:01 (1 year ago)
Author:
russellm
Message:

newforms-admin: Fixed #4450 -- Added URL override for user password changes in admin interface. Thanks for the help on this, Jakub Wisniowski.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin/django/contrib/admin/sites.py

    r5627 r5998  
    1010import datetime 
    1111import md5 
     12import re 
    1213 
    1314ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.") 
    1415LOGIN_FORM_KEY = 'this_is_the_login_form' 
     16 
     17USER_CHANGE_PASSWORD_URL_RE = re.compile('auth/user/(\d+)/password') 
    1518 
    1619class AlreadyRegistered(Exception): 
     
    112115            return self.login(request) 
    113116 
     117 
    114118        if url == '': 
    115119            return self.index(request) 
     
    120124        elif url == 'jsi18n': 
    121125            return self.i18n_javascript(request) 
    122         elif '/' in url: 
    123             return self.model_page(request, *url.split('/', 2)) 
     126        else: 
     127            match = USER_CHANGE_PASSWORD_URL_RE.match(url) 
     128            if match: 
     129                return self.user_change_password(request, match.group(1)) 
     130                 
     131            if '/' in url: 
     132                return self.model_page(request, *url.split('/', 2)) 
    124133 
    125134        raise http.Http404('The requested admin page does not exist.') 
     
    153162        from django.contrib.auth.views import password_change_done 
    154163        return password_change_done(request) 
     164 
     165    def user_change_password(self, request, id): 
     166        """ 
     167        Handles the "user change password" task 
     168        """ 
     169        from django.contrib.admin.views.auth import user_change_password 
     170        return user_change_password(request, id) 
    155171 
    156172    def i18n_javascript(self, request):