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']} # apps={'admin': ['paramecio2.modules.admin', 'admin_app']}
# Get all apps, load.
for name_module, module_app in config.apps.items(): 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] app_module=module_app[1]
path_module=module_app[2] path_module=module_app[2]
controller_path=import_module(module) controller_mod=import_module(module)
media_path=controller_path.__file__.replace('__init__.py', 'media')
#print(media_path) 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 os.path.isfile(media_path):
if yes_static: if yes_static:
app.mount("/mediafrom/"+name_app, StaticFiles(directory=media_path), name="static_"+name_app) 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) app.mount(path_module, fast_app)

View file

@ -1,8 +1,6 @@
from fastapi import FastAPI, Cookie, Request from fastapi import FastAPI, Cookie, Request
from fastapi.responses import HTMLResponse, RedirectResponse from fastapi.responses import HTMLResponse, RedirectResponse
from typing import Annotated from typing import Annotated
from itsdangerous.url_safe import URLSafeTimedSerializer
#from paramecio2.libraries.urls import make_url
from settings import config from settings import config
from parameciofast.fast import app from parameciofast.fast import app
from parameciofast.libraries.session import ParamecioSession 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=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.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"