Massimo Di Pierro
2011-12-16 10:16:44 -06:00
parent cfcc9b937b
commit 64d5a1c5ae
3 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.4 (2011-12-16 09:55:58) stable
Version 1.99.4 (2011-12-16 10:16:31) stable
+4
View File
@@ -156,6 +156,10 @@ class Storage(dict):
return value[-1]
return None
PICKABLE = (str,int,long,float,bool,list,dict,tuple,set)
def PickableStorage(data):
return Storage(dict((k,v) for (k,v) in data.items() if isinstance(v,PICKABLE)))
class StorageList(Storage):
"""
like Storage but missing elements default to [] instead of None
+3 -3
View File
@@ -24,7 +24,7 @@ import cStringIO
from email import MIMEBase, MIMEMultipart, MIMEText, Encoders, Header, message_from_string
from contenttype import contenttype
from storage import Storage, StorageList, Settings, Messages
from storage import Storage, PickableStorage, StorageList, Settings, Messages
from utils import web2py_uuid
from fileutils import read_file
from gluon import *
@@ -1494,7 +1494,7 @@ class Auth(object):
if user:
password = table_user[passfield].validate(password)[0]
if not user.registration_key and user[passfield] == password:
user = Storage(table_user._filter_fields(user, id=True))
user = PickableStorage(user)
session.auth = Storage(user=user, last_visit=request.now,
expiration=self.settings.expiration,
hmac_key = web2py_uuid())
@@ -1771,7 +1771,7 @@ class Auth(object):
# process authenticated users
if user:
user = Storage(table_user._filter_fields(user, id=True))
user = PickableStorage(user)
# process authenticated users
# user wants to be logged in for longer