mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 21:06:16 +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 import settings
|
||||||
from django.conf.urls import patterns, url
|
from django.conf.urls import patterns, url
|
||||||
import os.path
|
import os.path
|
||||||
|
import zephyr.forms
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^$', 'zephyr.views.home'),
|
url(r'^$', 'zephyr.views.home'),
|
||||||
@@ -18,7 +19,8 @@ urlpatterns = patterns('',
|
|||||||
url(r'^accounts/password/reset/done/$', 'django.contrib.auth.views.password_reset_done',
|
url(r'^accounts/password/reset/done/$', 'django.contrib.auth.views.password_reset_done',
|
||||||
{'template_name': 'zephyr/reset_emailed.html'}),
|
{'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',
|
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',
|
url(r'^accounts/password/done/$', 'django.contrib.auth.views.password_reset_complete',
|
||||||
{'template_name': 'zephyr/reset_done.html'}),
|
{'template_name': 'zephyr/reset_done.html'}),
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,10 @@ from django.core import validators
|
|||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
from django.contrib.auth.forms import SetPasswordForm
|
||||||
|
|
||||||
from humbug import settings
|
from humbug import settings
|
||||||
from models import Realm
|
from zephyr.models import Realm, do_change_password
|
||||||
|
|
||||||
def is_unique(value):
|
def is_unique(value):
|
||||||
try:
|
try:
|
||||||
@@ -48,3 +49,9 @@ class HomepageForm(forms.Form):
|
|||||||
else:
|
else:
|
||||||
validators = UniqueEmailField.default_validators + [has_valid_realm, isnt_mit]
|
validators = UniqueEmailField.default_validators + [has_valid_realm, isnt_mit]
|
||||||
email = UniqueEmailField(validators=validators)
|
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',
|
log_event({'type': 'user_activated',
|
||||||
'user': user.email})
|
'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)
|
user.set_password(password)
|
||||||
|
if commit:
|
||||||
user.save()
|
user.save()
|
||||||
if log:
|
if log:
|
||||||
log_event({'type': 'user_change_password',
|
log_event({'type': 'user_change_password',
|
||||||
|
|||||||
Reference in New Issue
Block a user