fix issue 1592

This commit is contained in:
niphlod committed 2013-07-17 23:18:04 +02:00
1 parent 63ca73d6f0
commit bb7715445a
3 files changed
+11 -7

No files matched your search

-1
View File
@@ -143,7 +143,6 @@ class MockTable(object):
release_lock(self.r_server, key_lock, newid)
return newid
class MockQuery(object):
"""a fake Query object that supports querying by id
and listing all keys. No other operation is supported
+3 -3
View File
@@ -498,7 +498,6 @@ class Session(Storage):
masterapp=None,
clear_session=False
):
if request is None:
request = current.request
if response is None:
@@ -576,13 +575,14 @@ class Session(Storage):
if record_id == '0':
raise Exception('record_id == 0')
# Select from database
row = db(table.id == record_id).select().first()
row = db(table.id == record_id).select()
row = row and row[0] or None
# Make sure the session data exists in the database
if not row or row.unique_key != unique_key:
raise Exception('No record')
unique_key = web2py_uuid()
row.update_record(unique_key=unique_key)
db(table.id == record_id).update(unique_key=unique_key)
response.session_id = '%s:%s' % (record_id, unique_key)
response.session_db_table = table
response.session_db_record_id = record_id
+8 -3
View File
@@ -1856,11 +1856,14 @@ class Auth(object):
delattr(user,'password')
else:
user = Row(user)
for key,value in user.items():
for key, value in user.items():
if callable(value) or key=='password':
delattr(user,key)
sessdb = current.response.session_db_table and current.response.session_db_table._db or None
current.session.renew(
clear_session=not self.settings.keep_session_onlogin, db=self.db)
clear_session=not self.settings.keep_session_onlogin,
db=sessdb
)
current.session.auth = Storage(
user = user,
last_visit=current.request.now,
@@ -2247,8 +2250,10 @@ class Auth(object):
current.session.auth = None
current.session.flash = self.messages.logged_out
sessdb = current.response.session_db_table and current.response.session_db_table._db or None
current.session.renew(
clear_session=not self.settings.keep_session_onlogout, db=self.db)
clear_session=not self.settings.keep_session_onlogout,
db=sessdb)
if not next is None:
redirect(next)