Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
itminedu
synnefo
Commits
673d2196
Commit
673d2196
authored
Jul 31, 2012
by
Sofia Papagiannaki
Browse files
Optionally renew token on password reset
Refs: #2612
parent
2fa9f520
Changes
3
Hide whitespace changes
Inline
Side-by-side
snf-astakos-app/astakos/im/forms.py
View file @
673d2196
...
...
@@ -35,7 +35,8 @@ from datetime import datetime
from
django
import
forms
from
django.utils.translation
import
ugettext
as
_
from
django.contrib.auth.forms
import
UserCreationForm
,
AuthenticationForm
,
PasswordResetForm
from
django.contrib.auth.forms
import
UserCreationForm
,
AuthenticationForm
,
\
PasswordResetForm
,
PasswordChangeForm
from
django.core.mail
import
send_mail
from
django.contrib.auth.tokens
import
default_token_generator
from
django.template
import
Context
,
loader
...
...
@@ -466,3 +467,22 @@ class InvitationForm(forms.ModelForm):
except
Invitation
.
DoesNotExist
:
pass
return
username
class
ExtendedPasswordChangeForm
(
PasswordChangeForm
):
"""
Extends PasswordChangeForm by enabling user
to optionally renew also the token.
"""
renew
=
forms
.
BooleanField
(
label
=
'Renew token'
,
required
=
False
)
def
__init__
(
self
,
user
,
*
args
,
**
kwargs
):
super
(
ExtendedPasswordChangeForm
,
self
).
__init__
(
user
,
*
args
,
**
kwargs
)
print
self
.
fields
.
keyOrder
def
save
(
self
,
commit
=
True
):
user
=
super
(
ExtendedPasswordChangeForm
,
self
).
save
(
commit
=
False
)
if
self
.
cleaned_data
.
get
(
'renew'
):
user
.
renew_token
()
if
commit
:
user
.
save
()
return
user
\ No newline at end of file
snf-astakos-app/astakos/im/urls.py
View file @
673d2196
...
...
@@ -34,7 +34,7 @@
from
django.conf.urls.defaults
import
patterns
,
include
,
url
from
django.contrib.auth.views
import
password_change
from
astakos.im.forms
import
ExtendedPasswordResetForm
,
LoginForm
from
astakos.im.forms
import
ExtendedPasswordResetForm
,
ExtendedPasswordChangeForm
,
LoginForm
from
astakos.im.settings
import
IM_MODULES
,
INVITATIONS_ENABLED
,
EMAILCHANGE_ENABLED
urlpatterns
=
patterns
(
'astakos.im.views'
,
...
...
@@ -73,7 +73,8 @@ if 'local' in IM_MODULES:
url
(
r
'^local/reset/confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/?$'
,
'password_reset_confirm'
),
url
(
r
'^local/password/reset/complete/?$'
,
'password_reset_complete'
),
url
(
r
'^password_change/?$'
,
'password_change'
,
{
'post_change_redirect'
:
'profile'
})
url
(
r
'^password_change/?$'
,
'password_change'
,
{
'post_change_redirect'
:
'profile'
,
'password_change_form'
:
ExtendedPasswordChangeForm
})
)
if
INVITATIONS_ENABLED
:
...
...
snf-astakos-app/astakos/im/views.py
View file @
673d2196
...
...
@@ -532,7 +532,9 @@ def approval_terms(request, term_id=None, template_name='im/approval_terms.html'
@
signed_terms_required
def
change_password
(
request
):
return
password_change
(
request
,
post_change_redirect
=
reverse
(
'astakos.im.views.edit_profile'
))
return
password_change
(
request
,
post_change_redirect
=
reverse
(
'astakos.im.views.edit_profile'
),
password_change_form
=
ExtendedPasswordChangeForm
)
@
transaction
.
commit_manually
def
change_email
(
request
,
activation_key
=
None
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment