From 9f07fc1ea23bc809938746ceae35f77af8a7a836 Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Fri, 27 Dec 2024 01:28:42 +0100 Subject: [PATCH] Fixes in fastadmin --- parameciofast/fast.py | 20 ++++++++++--- parameciofast/modules/fastadmin/__init__.py | 33 --------------------- 2 files changed, 16 insertions(+), 37 deletions(-) diff --git a/parameciofast/fast.py b/parameciofast/fast.py index 8f89f92..1a6323e 100644 --- a/parameciofast/fast.py +++ b/parameciofast/fast.py @@ -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) diff --git a/parameciofast/modules/fastadmin/__init__.py b/parameciofast/modules/fastadmin/__init__.py index 2836032..3f870d2 100644 --- a/parameciofast/modules/fastadmin/__init__.py +++ b/parameciofast/modules/fastadmin/__init__.py @@ -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" - -