mirror of
https://github.com/zulip/zulip.git
synced 2025-11-17 12:21:58 +00:00
Log password change events via the password reset feature.
(imported from commit bbec7074229e8779c81d439d4eef373b5dac9fa7)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from django.conf import settings
|
||||
from django.conf.urls import patterns, url
|
||||
import os.path
|
||||
import zephyr.forms
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^$', 'zephyr.views.home'),
|
||||
@@ -18,7 +19,8 @@ urlpatterns = patterns('',
|
||||
url(r'^accounts/password/reset/done/$', 'django.contrib.auth.views.password_reset_done',
|
||||
{'template_name': 'zephyr/reset_emailed.html'}),
|
||||
url(r'^accounts/password/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm',
|
||||
{'post_reset_redirect' : '/accounts/password/done/', 'template_name': 'zephyr/reset_confirm.html'}),
|
||||
{'post_reset_redirect' : '/accounts/password/done/', 'template_name': 'zephyr/reset_confirm.html',
|
||||
'set_password_form' : zephyr.forms.LoggingSetPasswordForm}),
|
||||
url(r'^accounts/password/done/$', 'django.contrib.auth.views.password_reset_complete',
|
||||
{'template_name': 'zephyr/reset_done.html'}),
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@ from django.core import validators
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.contrib.auth.forms import SetPasswordForm
|
||||
|
||||
from humbug import settings
|
||||
from models import Realm
|
||||
from zephyr.models import Realm, do_change_password
|
||||
|
||||
def is_unique(value):
|
||||
try:
|
||||
@@ -48,3 +49,9 @@ class HomepageForm(forms.Form):
|
||||
else:
|
||||
validators = UniqueEmailField.default_validators + [has_valid_realm, isnt_mit]
|
||||
email = UniqueEmailField(validators=validators)
|
||||
|
||||
class LoggingSetPasswordForm(SetPasswordForm):
|
||||
def save(self, commit=True):
|
||||
do_change_password(self.user, self.cleaned_data['new_password1'],
|
||||
log=True, commit=commit)
|
||||
return self.user
|
||||
|
||||
@@ -639,8 +639,9 @@ def do_activate_user(user, log=True, join_date=timezone.now()):
|
||||
log_event({'type': 'user_activated',
|
||||
'user': user.email})
|
||||
|
||||
def do_change_password(user, password, log=True):
|
||||
def do_change_password(user, password, log=True, commit=True):
|
||||
user.set_password(password)
|
||||
if commit:
|
||||
user.save()
|
||||
if log:
|
||||
log_event({'type': 'user_change_password',
|
||||
|
||||
Reference in New Issue
Block a user