Added new session system, more simple

This commit is contained in:
Antonio de la Rosa 2016-04-13 03:20:50 +02:00
parent 79a7f2291d
commit 4bebd7a6c4
10 changed files with 172 additions and 55 deletions

View file

@ -44,7 +44,6 @@ class GetPostFiles:
#Clean csrf_token
s['csrf_token']=''
s.save()
else:

View file

@ -1,6 +1,17 @@
from hashlib import sha512
from hashlib import sha512, sha256
from base64 import b64encode
from os import urandom
def create_key_encrypt(n=10):
return sha512(urandom(n)).hexdigest()
def create_key_encrypt_256(n=10):
return sha256(urandom(n)).hexdigest()
def create_key(n=10):
rand_bytes=urandom(n)
return b64encode(rand_bytes).decode('utf-8')

View file

@ -92,8 +92,6 @@ class SimpleList:
self.order_by=self.order_defaults[ order_k ]
self.s['order']=order_k
self.s.save()
def obtain_field_search(self):
@ -115,8 +113,6 @@ class SimpleList:
self.change_order[field_k]=1
else:
self.change_order[field_k]=0
self.s.save()
self.order_field=self.s['order_field']
@ -182,5 +178,9 @@ class SimpleList:
self.model.yes_reset_conditions=True
return self.t.load_template('utils/list.phtml', simplelist=self, list=list_items, pages=pages)
listing=self.t.load_template('utils/list.phtml', simplelist=self, list=list_items, pages=pages)
list_items.close()
return listing

View file

@ -266,8 +266,6 @@ def set_flash_message(message):
s['flash']=message
s.save()
def show_flash_message():
message=""
@ -281,8 +279,6 @@ def show_flash_message():
s['flash']=''
s.save()
return message
standard_t=ptemplate(__file__)

View file

@ -1,6 +1,8 @@
#!/usr/bin/python3
from bottle import request
from itsdangerous import JSONWebSignatureSerializer
from paramecio.citoplasma.keyutils import create_key_encrypt, create_key_encrypt_256, create_key
from bottle import request, response
try:
@ -10,14 +12,91 @@ except:
class config:
cookie_name='paramecio_session'
key_encrypt=create_key_encrypt_256(30)
class ParamecioSession:
def __init__(self):
self.session=request.environ.get(config.cookie_name)
#self.token=request.get_cookie(config.cookie_name)
def get(self, name, default_value):
if not name in self.session:
self.session[name]=default_value
request.environ[config.cookie_name]=self.session
request.environ[config.cookie_name]['save']=True
return self.session[name]
def __getitem__(self, key):
return self.session[key]
def __setitem__(self, key, value):
self.session[key]=value
request.environ[config.cookie_name]=self.session
request.environ[config.cookie_name]['save']=True
def __delitem__(self, key):
del self.session[key]
request.environ[config.cookie_name]=self.session
request.environ[config.cookie_name]['save']=True
def __contains__(self, key):
if key in self.session:
return True
else:
return False
def __iter__(self):
return self.session
def __str__(self):
return self.session.__str__()
def keys(self):
return self.session.keys()
def generate_session():
random_text=create_key_encrypt_256(30)
response.set_cookie(config.cookie_name, random_text)
request.environ[config.cookie_name]={'token': random_text}
def get_session():
if config.cookie_name in request.environ:
return ParamecioSession()
else:
return None
"""
try:
return request.environ.get(config.cookie_name)
# Check if session was loaded, if loaded, get cache
#return request.environ.get(config.cookie_name)
code_session=request.get_cookie(config.cookie_name)
try:
#with fopen(config.session_opts['session.data_dir']) as signed_session:
pass
except:
return {}
except:
return {}
"""