Fix in sessions for admin2

This commit is contained in:
Antonio de la Rosa 2025-04-30 00:48:20 +02:00
parent 6a6a63730c
commit 9efbeb7b4c
5 changed files with 23 additions and 15 deletions

View file

@ -124,6 +124,7 @@ class SessionPlugin(object):
def __init__(self, keyword='session'): def __init__(self, keyword='session'):
self.keyword=keyword self.keyword=keyword
self.session=None
def setup(self, app): def setup(self, app):
@ -149,6 +150,10 @@ class SessionPlugin(object):
if keyword not in args: if keyword not in args:
return callback return callback
""" """
if keyword in args:
#print(args[keyword])
self.session=True
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
@ -170,7 +175,9 @@ class SessionPlugin(object):
except: except:
session=Session() session=Session()
if 'session' in kwargs: #if 'session' in kwargs:
#print(kwargs)
if self.session:
kwargs['session']=session kwargs['session']=session
#For compatibility with old sessions server-side style. #For compatibility with old sessions server-side style.

View file

@ -3,5 +3,6 @@ from paramecio.modules.admin2.libraries.loginplugin import check_login
from paramecio.libraries.sessionplugin import SessionPlugin from paramecio.libraries.sessionplugin import SessionPlugin
admin_app=Bottle() admin_app=Bottle()
admin_app.install(SessionPlugin()) splugin=SessionPlugin()
admin_app.install(splugin)
admin_app.install(check_login) admin_app.install(check_login)

View file

@ -13,7 +13,7 @@ from paramecio.wsgiapp import app
#from paramecio.modules.admin2 import admin_app #from paramecio.modules.admin2 import admin_app
from bottle import request, redirect, Bottle, response from bottle import request, redirect, Bottle, response
from paramecio.modules.admin2.libraries.loginplugin import check_login from paramecio.modules.admin2.libraries.loginplugin import check_login
from paramecio.libraries.sessionplugin import SessionPlugin from paramecio.libraries.sessionplugin import SessionPlugin, Session
from paramecio.libraries.httputils import GetPostFiles from paramecio.libraries.httputils import GetPostFiles
from paramecio.libraries.db.formsutils import check_form, csrf_token from paramecio.libraries.db.formsutils import check_form, csrf_token
from paramecio.libraries.db.coreforms import PasswordForm from paramecio.libraries.db.coreforms import PasswordForm
@ -60,7 +60,7 @@ if hasattr(config, 'admin_folder'):
admin_folder=config.admin_folder admin_folder=config.admin_folder
@admin_app.get('/home', name="admin_app.home_admin") @admin_app.get('/home', name="admin_app.home_admin")
def home_admin(session={}): def home_admin(session=Session()):
#s=get_session() #s=get_session()
@ -75,7 +75,7 @@ def redirect_home():
redirect(app.get_url('admin_app.home_admin')) redirect(app.get_url('admin_app.home_admin'))
@admin_app.get('/login', name="admin_app.login_admin", skip=[check_login]) @admin_app.get('/login', name="admin_app.login_admin", skip=[check_login])
def login_admin(session={}): def login_admin(session=Session()):
db=WebModel.connection() db=WebModel.connection()
@ -116,7 +116,7 @@ def login_admin(session={}):
return t.load_template('login.phtml', title=_('Login')) return t.load_template('login.phtml', title=_('Login'))
@admin_app.get('/signup', skip=[check_login], name='admin_app.signup_admin') @admin_app.get('/signup', skip=[check_login], name='admin_app.signup_admin')
def signup_admin(session={}): def signup_admin(session=Session()):
db=WebModel.connection() db=WebModel.connection()
@ -133,8 +133,8 @@ def signup_admin(session={}):
return t.load_template('signup.phtml', title=_('Signup')) return t.load_template('signup.phtml', title=_('Signup'))
@admin_app.post('/login', skip=[check_login], name='admin_app.check_login_admin') @admin_app.post('/login', skip=[check_login], name='admin_app.check_login_admin')
def check_login_admin(session={}): def check_login_admin(session=Session()):
db=WebModel.connection() db=WebModel.connection()
#i18n=I18n('admin2') #i18n=I18n('admin2')
@ -229,7 +229,7 @@ def check_login_admin(session={}):
return {'error': error, 'message': message, 'no_login': no_login} return {'error': error, 'message': message, 'no_login': no_login}
@admin_app.post('/signup', skip=[check_login], name='admin_app.signup_insert_admin') @admin_app.post('/signup', skip=[check_login], name='admin_app.signup_insert_admin')
def signup_insert_admin(session={}): def signup_insert_admin(session=Session()):
#i18n=I18n('admin2') #i18n=I18n('admin2')
@ -277,7 +277,7 @@ def signup_insert_admin(session={}):
return {'error': error, 'message': message} return {'error': error, 'message': message}
@admin_app.get('/logout', name="admin_app.logout_admin", skip=[check_login]) @admin_app.get('/logout', name="admin_app.logout_admin", skip=[check_login])
def logout_admin(session={}): def logout_admin(session=Session()):
if login_admin in session: if login_admin in session:
del session['login_admin'] del session['login_admin']
@ -301,7 +301,7 @@ def change_lang():
return {'error': error, 'message': message} return {'error': error, 'message': message}
@admin_app.get('/change_theme', name="admin_app.change_theme") @admin_app.get('/change_theme', name="admin_app.change_theme")
def change_theme(session={}): def change_theme(session=Session()):
try: try:
theme=int(request.query.get('theme', 0)) theme=int(request.query.get('theme', 0))
@ -323,14 +323,14 @@ def change_theme(session={}):
return {'error': error, 'message': ''} return {'error': error, 'message': ''}
@admin_app.get('/need_auth', skip=[check_login], name='admin_app.need_auth') @admin_app.get('/need_auth', skip=[check_login], name='admin_app.need_auth')
def need_auth(session={}): def need_auth(session=Session()):
#i18n=I18n('admin2') #i18n=I18n('admin2')
return t.load_template('need_auth.phtml', title=_('Auth check')) return t.load_template('need_auth.phtml', title=_('Auth check'))
@admin_app.post('/auth_check', skip=[check_login], name='admin_app.auth_check') @admin_app.post('/auth_check', skip=[check_login], name='admin_app.auth_check')
def auth_check(session={}): def auth_check(session=Session()):
error=1 error=1

View file

@ -7,7 +7,7 @@ def check_login(callback):
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
if 'session' in request.environ: if 'session' in request.environ:
if request.environ['session'].get('login_admin', False) and not request.environ['session'].get('verify_auth', False): if request.environ['session'].get('login_admin', False) and not request.environ['session'].get('verify_auth', False):
#print(request.environ.get('session')) #print(request.environ.get('session'))

View file

@ -7,7 +7,7 @@ name = "paramecio"
authors = [{name = "Antonio de la Rosa", email = "antonio.delarosa@salirdelhoyo.com"}] authors = [{name = "Antonio de la Rosa", email = "antonio.delarosa@salirdelhoyo.com"}]
readme = "README.md" readme = "README.md"
version = "1.0.36" version = "1.0.36"
description = "A simple framework using flask and mako" description = "A simple framework using bottle and mako"
# dynamic = ["version", "description"] # dynamic = ["version", "description"]
classifiers=['Development Status :: 4 - Beta', classifiers=['Development Status :: 4 - Beta',