auto-login after reset password
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-08-26 17:05:49) dev
|
Version 2.00.0 (2012-08-26 17:28:16) dev
|
||||||
|
|||||||
+24
-26
@@ -959,6 +959,7 @@ class Auth(object):
|
|||||||
settings.registration_requires_verification = False
|
settings.registration_requires_verification = False
|
||||||
settings.registration_requires_approval = False
|
settings.registration_requires_approval = False
|
||||||
settings.login_after_registration = False
|
settings.login_after_registration = False
|
||||||
|
settings.login_after_password_change = True
|
||||||
settings.alternate_requires_registration = False
|
settings.alternate_requires_registration = False
|
||||||
settings.create_user_groups = "user_%(id)s"
|
settings.create_user_groups = "user_%(id)s"
|
||||||
settings.everybody_group_id = None
|
settings.everybody_group_id = None
|
||||||
@@ -1038,8 +1039,9 @@ class Auth(object):
|
|||||||
settings.profile_fields = None
|
settings.profile_fields = None
|
||||||
settings.retrieve_username_next = self.url('index')
|
settings.retrieve_username_next = self.url('index')
|
||||||
settings.retrieve_password_next = self.url('index')
|
settings.retrieve_password_next = self.url('index')
|
||||||
settings.request_reset_password_next = self.url(function, args='login')
|
settings.request_reset_password_next = \
|
||||||
settings.reset_password_next = self.url(function, args='login')
|
self.url(function,args='login')
|
||||||
|
settings.reset_password_next = self.url('index')
|
||||||
|
|
||||||
settings.change_password_next = self.url('index')
|
settings.change_password_next = self.url('index')
|
||||||
settings.change_password_onvalidation = []
|
settings.change_password_onvalidation = []
|
||||||
@@ -1675,6 +1677,15 @@ class Auth(object):
|
|||||||
(username, password) = base64.b64decode(basic[6:]).split(':')
|
(username, password) = base64.b64decode(basic[6:]).split(':')
|
||||||
return (True, True, self.login_bare(username, password))
|
return (True, True, self.login_bare(username, password))
|
||||||
|
|
||||||
|
def login_user(self,user):
|
||||||
|
current.session.auth = Storage(
|
||||||
|
user = user,
|
||||||
|
last_visit = current.request.now,
|
||||||
|
expiration = self.settings.expiration,
|
||||||
|
hmac_key = web2py_uuid())
|
||||||
|
self.user = user
|
||||||
|
self.update_groups()
|
||||||
|
|
||||||
def login_bare(self, username, password):
|
def login_bare(self, username, password):
|
||||||
"""
|
"""
|
||||||
logins user
|
logins user
|
||||||
@@ -1695,11 +1706,7 @@ class Auth(object):
|
|||||||
password = table_user[passfield].validate(password)[0]
|
password = table_user[passfield].validate(password)[0]
|
||||||
if not user.registration_key and password == user[passfield]:
|
if not user.registration_key and password == user[passfield]:
|
||||||
user = Storage(table_user._filter_fields(user, id=True))
|
user = Storage(table_user._filter_fields(user, id=True))
|
||||||
session.auth = Storage(user=user, last_visit=request.now,
|
self.login_user(user)
|
||||||
expiration=self.settings.expiration,
|
|
||||||
hmac_key = web2py_uuid())
|
|
||||||
self.user = user
|
|
||||||
self.update_groups()
|
|
||||||
return user
|
return user
|
||||||
else:
|
else:
|
||||||
# user not in database try other login methods
|
# user not in database try other login methods
|
||||||
@@ -1974,24 +1981,17 @@ class Auth(object):
|
|||||||
# process authenticated users
|
# process authenticated users
|
||||||
if user:
|
if user:
|
||||||
user = Storage(table_user._filter_fields(user, id=True))
|
user = Storage(table_user._filter_fields(user, id=True))
|
||||||
|
|
||||||
# process authenticated users
|
# process authenticated users
|
||||||
# user wants to be logged in for longer
|
# user wants to be logged in for longer
|
||||||
session.auth = Storage(
|
self.login_user(user)
|
||||||
user = user,
|
session.auth.expiration = \
|
||||||
last_visit = request.now,
|
request.vars.get("remember",False) and \
|
||||||
expiration = request.vars.get("remember",False) and \
|
self.settings.long_expiration or \
|
||||||
self.settings.long_expiration or self.settings.expiration,
|
self.settings.expiration
|
||||||
remember = request.vars.has_key("remember"),
|
session.auth.remember = request.vars.has_key("remember"),
|
||||||
hmac_key = web2py_uuid()
|
|
||||||
)
|
|
||||||
|
|
||||||
self.user = user
|
|
||||||
self.log_event(log, user)
|
self.log_event(log, user)
|
||||||
session.flash = self.messages.logged_in
|
session.flash = self.messages.logged_in
|
||||||
|
|
||||||
self.update_groups()
|
|
||||||
|
|
||||||
# how to continue
|
# how to continue
|
||||||
if self.settings.login_form == self:
|
if self.settings.login_form == self:
|
||||||
if accepted_form:
|
if accepted_form:
|
||||||
@@ -2151,11 +2151,7 @@ class Auth(object):
|
|||||||
session.flash = self.messages.registration_successful
|
session.flash = self.messages.registration_successful
|
||||||
user = self.db(table_user[username] == form.vars[username]).select().first()
|
user = self.db(table_user[username] == form.vars[username]).select().first()
|
||||||
user = Storage(table_user._filter_fields(user, id=True))
|
user = Storage(table_user._filter_fields(user, id=True))
|
||||||
session.auth = Storage(user=user, last_visit=request.now,
|
self.login_user(user)
|
||||||
expiration=self.settings.expiration,
|
|
||||||
hmac_key = web2py_uuid())
|
|
||||||
self.user = user
|
|
||||||
self.update_groups()
|
|
||||||
session.flash = self.messages.logged_in
|
session.flash = self.messages.logged_in
|
||||||
self.log_event(log, form.vars)
|
self.log_event(log, form.vars)
|
||||||
callback(onaccept,form)
|
callback(onaccept,form)
|
||||||
@@ -2398,7 +2394,7 @@ class Auth(object):
|
|||||||
session = current.session
|
session = current.session
|
||||||
|
|
||||||
if next is DEFAULT:
|
if next is DEFAULT:
|
||||||
next = self.next or self.settings.reset_password_next
|
next = self.settings.reset_password_next
|
||||||
try:
|
try:
|
||||||
key = request.vars.key or getarg(-1)
|
key = request.vars.key or getarg(-1)
|
||||||
t0 = int(key.split('-')[0])
|
t0 = int(key.split('-')[0])
|
||||||
@@ -2427,6 +2423,8 @@ class Auth(object):
|
|||||||
'registration_key':'',
|
'registration_key':'',
|
||||||
'reset_password_key':''})
|
'reset_password_key':''})
|
||||||
session.flash = self.messages.password_changed
|
session.flash = self.messages.password_changed
|
||||||
|
if self.settings.login_after_password_change:
|
||||||
|
self.login_user(user)
|
||||||
redirect(next)
|
redirect(next)
|
||||||
return form
|
return form
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user