fix issue 1592
This commit is contained in:
@@ -143,7 +143,6 @@ class MockTable(object):
|
|||||||
release_lock(self.r_server, key_lock, newid)
|
release_lock(self.r_server, key_lock, newid)
|
||||||
return newid
|
return newid
|
||||||
|
|
||||||
|
|
||||||
class MockQuery(object):
|
class MockQuery(object):
|
||||||
"""a fake Query object that supports querying by id
|
"""a fake Query object that supports querying by id
|
||||||
and listing all keys. No other operation is supported
|
and listing all keys. No other operation is supported
|
||||||
|
|||||||
+3
-3
@@ -498,7 +498,6 @@ class Session(Storage):
|
|||||||
masterapp=None,
|
masterapp=None,
|
||||||
clear_session=False
|
clear_session=False
|
||||||
):
|
):
|
||||||
|
|
||||||
if request is None:
|
if request is None:
|
||||||
request = current.request
|
request = current.request
|
||||||
if response is None:
|
if response is None:
|
||||||
@@ -576,13 +575,14 @@ class Session(Storage):
|
|||||||
if record_id == '0':
|
if record_id == '0':
|
||||||
raise Exception('record_id == 0')
|
raise Exception('record_id == 0')
|
||||||
# Select from database
|
# 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
|
# Make sure the session data exists in the database
|
||||||
if not row or row.unique_key != unique_key:
|
if not row or row.unique_key != unique_key:
|
||||||
raise Exception('No record')
|
raise Exception('No record')
|
||||||
|
|
||||||
unique_key = web2py_uuid()
|
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_id = '%s:%s' % (record_id, unique_key)
|
||||||
response.session_db_table = table
|
response.session_db_table = table
|
||||||
response.session_db_record_id = record_id
|
response.session_db_record_id = record_id
|
||||||
|
|||||||
+12
-7
@@ -1794,7 +1794,7 @@ class Auth(object):
|
|||||||
guess = keys.get('email', 'anonymous').split('@')[0]
|
guess = keys.get('email', 'anonymous').split('@')[0]
|
||||||
keys['first_name'] = keys.get('username', guess)
|
keys['first_name'] = keys.get('username', guess)
|
||||||
user_id = table_user.insert(**table_user._filter_fields(keys))
|
user_id = table_user.insert(**table_user._filter_fields(keys))
|
||||||
user = table_user[user_id]
|
user = table_user[user_id]
|
||||||
print user
|
print user
|
||||||
if self.settings.create_user_groups:
|
if self.settings.create_user_groups:
|
||||||
group_id = self.add_group(
|
group_id = self.add_group(
|
||||||
@@ -1856,11 +1856,14 @@ class Auth(object):
|
|||||||
delattr(user,'password')
|
delattr(user,'password')
|
||||||
else:
|
else:
|
||||||
user = Row(user)
|
user = Row(user)
|
||||||
for key,value in user.items():
|
for key, value in user.items():
|
||||||
if callable(value) or key=='password':
|
if callable(value) or key=='password':
|
||||||
delattr(user,key)
|
delattr(user,key)
|
||||||
|
sessdb = current.response.session_db_table and current.response.session_db_table._db or None
|
||||||
current.session.renew(
|
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(
|
current.session.auth = Storage(
|
||||||
user = user,
|
user = user,
|
||||||
last_visit=current.request.now,
|
last_visit=current.request.now,
|
||||||
@@ -2247,8 +2250,10 @@ class Auth(object):
|
|||||||
|
|
||||||
current.session.auth = None
|
current.session.auth = None
|
||||||
current.session.flash = self.messages.logged_out
|
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(
|
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:
|
if not next is None:
|
||||||
redirect(next)
|
redirect(next)
|
||||||
|
|
||||||
@@ -4913,7 +4918,7 @@ class Expose(object):
|
|||||||
def __init__(self, base=None, basename=None, extensions=None, allow_download=True):
|
def __init__(self, base=None, basename=None, extensions=None, allow_download=True):
|
||||||
"""
|
"""
|
||||||
Usage:
|
Usage:
|
||||||
|
|
||||||
def static():
|
def static():
|
||||||
return dict(files=Expose())
|
return dict(files=Expose())
|
||||||
|
|
||||||
@@ -4995,7 +5000,7 @@ class Expose(object):
|
|||||||
return ''
|
return ''
|
||||||
|
|
||||||
def xml(self):
|
def xml(self):
|
||||||
return DIV(
|
return DIV(
|
||||||
H2(self.breadcrumbs(self.basename)),
|
H2(self.breadcrumbs(self.basename)),
|
||||||
self.paragraph or '',
|
self.paragraph or '',
|
||||||
self.table_folders(),
|
self.table_folders(),
|
||||||
@@ -5154,7 +5159,7 @@ class Wiki(object):
|
|||||||
db.wiki_tag.insert(name=tag, wiki_page=page.id)
|
db.wiki_tag.insert(name=tag, wiki_page=page.id)
|
||||||
db.wiki_page._after_insert.append(update_tags_insert)
|
db.wiki_page._after_insert.append(update_tags_insert)
|
||||||
db.wiki_page._after_update.append(update_tags_update)
|
db.wiki_page._after_update.append(update_tags_update)
|
||||||
|
|
||||||
if (auth.user and
|
if (auth.user and
|
||||||
check_credentials(current.request, gae_login=False) and
|
check_credentials(current.request, gae_login=False) and
|
||||||
not 'wiki_editor' in auth.user_groups.values()):
|
not 'wiki_editor' in auth.user_groups.values()):
|
||||||
|
|||||||
Reference in New Issue
Block a user