Fixes in fastadmin

This commit is contained in:
Antonio de la Rosa 2024-12-27 01:28:42 +01:00
parent a8fa6aad34
commit 9f07fc1ea2
2 changed files with 16 additions and 37 deletions

View file

@ -16,6 +16,7 @@ if hasattr(config, 'yes_static'):
# apps={'admin': ['paramecio2.modules.admin', 'admin_app']}
# Get all apps, load.
for name_module, module_app in config.apps.items():
@ -23,15 +24,26 @@ for name_module, module_app in config.apps.items():
app_module=module_app[1]
path_module=module_app[2]
controller_path=import_module(module)
media_path=controller_path.__file__.replace('__init__.py', 'media')
#print(media_path)
controller_mod=import_module(module)
base_path=controller_mod.__file__.replace('__init__.py', '')
media_path=base_path+'media/'
dir_controllers=os.listdir(base_path)
for controller in dir_controllers:
if controller.find('.py')!=-1 and controller.find('__')==-1:
subcontroller_path=module+'.'+controller.replace('.py', '')
subcontroller_mod=import_module(subcontroller_path)
if os.path.isfile(media_path):
if yes_static:
app.mount("/mediafrom/"+name_app, StaticFiles(directory=media_path), name="static_"+name_app)
fast_app=getattr(controller_path, app_module)
fast_app=getattr(controller_mod, app_module)
app.mount(path_module, fast_app)

View file

@ -1,8 +1,6 @@
from fastapi import FastAPI, Cookie, Request
from fastapi.responses import HTMLResponse, RedirectResponse
from typing import Annotated
from itsdangerous.url_safe import URLSafeTimedSerializer
#from paramecio2.libraries.urls import make_url
from settings import config
from parameciofast.fast import app
from parameciofast.libraries.session import ParamecioSession
@ -19,34 +17,3 @@ url_app=config.apps['admin'][2]
admin_app=FastAPI(docs_url="/docs", openapi_url="/docs/openapi.json", title='Paramecio Admin', version='0.9')
admin_app.add_middleware(SessionMiddleware, secret_key=config.secret_key, max_age=None, session_cookie=cookie_name, path=url_app)
"""
@admin_app.middleware("http")
async def session(request: Request, call_next):
#request.state.session=
if request.url.path!='{}login'.format(url_app):
pass
response=await call_next(request)
return response
"""
@admin_app.get('/', response_class=HTMLResponse)
def home_admin(request: Request, paramecio_session: Annotated[str | None, Cookie(description='Cookie for validate into the admin site')] = None):
"""
if not paramecio_session:
return RedirectResponse(app.url_path_for('login_admin'))
"""
if not request.session.get('login_admin', None):
return RedirectResponse(app.url_path_for('login_admin'))
return "Hello world!"
@admin_app.get('/login', response_class=HTMLResponse)
def login_admin():
return "Login"