fixed issue 1197, Virtual Fields are stored in session

This commit is contained in:
mdipierro
2012-11-29 17:05:27 -06:00
parent 04a7d9a92d
commit fc7c4432e9
2 changed files with 37 additions and 34 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.2.1 (2012-11-29 09:52:05) stable Version 2.2.1 (2012-11-29 17:04:46) stable
+36 -33
View File
@@ -1762,11 +1762,12 @@ class Auth(object):
""" """
login the user = db.auth_user(id) login the user = db.auth_user(id)
""" """
user = Storage(self.table_user()._filter_fields(user, id=True)) user = Storage(user)
if 'password' in user: for key,value in user.items():
del user.password if callable(value) or key=='password':
del user[key]
current.session.auth = Storage( current.session.auth = Storage(
user=user, user = user,
last_visit=current.request.now, last_visit=current.request.now,
expiration=self.settings.expiration, expiration=self.settings.expiration,
hmac_key=web2py_uuid()) hmac_key=web2py_uuid())
@@ -5088,40 +5089,42 @@ class Wiki(object):
subtree = [] subtree = []
tree[base] = subtree tree[base] = subtree
parent.append((current.T(title), False, link, subtree)) parent.append((current.T(title), False, link, subtree))
if True: # Changed from True to self.auth.user. Why just True anyway?
if self.auth.user:
submenu = [] submenu = []
menu.append((current.T('[Wiki]'), None, None, submenu)) menu.append((current.T('[Wiki]'), None, None, submenu))
if self.auth.user: if URL() == URL(controller, function):
if URL() == URL(controller, function): if not str(request.args(0)).startswith('_'):
if not str(request.args(0)).startswith('_'): slug = request.args(0) or 'index'
slug = request.args(0) or 'index' mode = 1
mode = 1 elif request.args(0) == '_edit':
elif request.args(0) == '_edit': slug = request.args(1) or 'index'
slug = request.args(1) or 'index' mode = 2
mode = 2 elif request.args(0) == '_editmedia':
elif request.args(0) == '_editmedia': slug = request.args(1) or 'index'
slug = request.args(1) or 'index' mode = 3
mode = 3 else:
else: mode = 0
mode = 0 if mode in (2, 3):
if mode in (2, 3): submenu.append((current.T('View Page'), None,
submenu.append((current.T('View Page'), None, URL(controller, function, args=slug)))
URL(controller, function, args=slug))) if mode in (1, 3):
if mode in (1, 3): submenu.append((current.T('Edit Page'), None,
submenu.append((current.T('Edit Page'), None, URL(controller, function, args=('_edit', slug))))
URL(controller, function, args=('_edit', slug)))) if mode in (1, 2):
if mode in (1, 2): submenu.append((current.T('Edit Page Media'), None,
submenu.append((current.T('Edit Page Media'), None, URL(controller, function, args=('_editmedia', slug))))
URL(controller, function, args=('_editmedia', slug))))
submenu.append((current.T('Create New Page'), None, submenu.append((current.T('Create New Page'), None,
URL(controller, function, args=('_create')))) URL(controller, function, args=('_create'))))
if self.can_manage(): # Moved next if to inside self.auth.user check
submenu.append((current.T('Manage Pages'), None, if self.can_manage():
submenu.append((current.T('Manage Pages'), None,
URL(controller, function, args=('_pages')))) URL(controller, function, args=('_pages'))))
submenu.append((current.T('Edit Menu'), None, submenu.append((current.T('Edit Menu'), None,
URL(controller, function, args=('_edit', 'wiki-menu')))) URL(controller, function, args=('_edit', 'wiki-menu'))))
submenu.append((current.T('Search Pages'), None, # Also moved inside self.auth.user check
submenu.append((current.T('Search Pages'), None,
URL(controller, function, args=('_search')))) URL(controller, function, args=('_search'))))
return menu return menu