diff --git a/colab/accounts/signals.py b/colab/accounts/signals.py new file mode 100644 index 0000000..376c05d --- /dev/null +++ b/colab/accounts/signals.py @@ -0,0 +1,5 @@ + +from django.dispatch import Signal + + +user_password_changed = Signal(providing_args=['user', 'password']) diff --git a/colab/accounts/urls.py b/colab/accounts/urls.py index 335b0c2..211f396 100644 --- a/colab/accounts/urls.py +++ b/colab/accounts/urls.py @@ -3,7 +3,7 @@ from django.conf import settings from django.conf.urls import patterns, url from .views import (UserProfileDetailView, UserProfileUpdateView, - ManageUserSubscriptionsView) + ManageUserSubscriptionsView, colab_password_change) from colab.accounts import views from django.contrib.auth import views as auth_views @@ -29,8 +29,7 @@ urlpatterns = patterns('', {'template_name':'registration/password_reset_form_custom.html'}, name="password_reset"), - url(r'^change-password/?$',auth_views.password_change, - {'template_name':'registration/password_change_form_custom.html'}, + url(r'^change-password/?$', colab_password_change, name='password_change'), url(r'^change-password-done/?$', diff --git a/colab/accounts/views.py b/colab/accounts/views.py index 5b206e8..b98ec83 100644 --- a/colab/accounts/views.py +++ b/colab/accounts/views.py @@ -2,6 +2,7 @@ from collections import OrderedDict from django.contrib import messages +from django.contrib.auth.views import password_change from django.db.models import Count from django.contrib.auth import get_user_model from django.utils.translation import ugettext as _ @@ -17,6 +18,7 @@ from colab.search.utils import get_collaboration_data, get_visible_threads from colab.accounts.models import User from .forms import (UserCreationForm, ListsForm, UserUpdateForm) +from .signals import user_password_changed from .utils import mailman @@ -212,3 +214,13 @@ def myaccount_redirect(request, route): url = '/'.join(('/account', request.user.username, route)) return redirect(url) + + +def colab_password_change(request): + template_name = 'registration/password_change_form_custom.html' + response = password_change(request, template_name) + if response.status_code == 302: + user_password_changed.send(sender=colab_password_change.__name__, + user=request.user, + password=request.POST.get('new_password1')) + return response -- libgit2 0.21.2