Authorization via decorator

This commit is contained in:
2025-09-22 21:16:47 +02:00
parent 12b7c62b69
commit d6b7eb9b30
22 changed files with 280 additions and 41 deletions

View File

@@ -1,7 +1,7 @@
from starlette.responses import JSONResponse
from cpl import api
from cpl.api.web_app import WebApp
from cpl.api.application.web_app import WebApp
from cpl.application import ApplicationBuilder
from cpl.core.configuration import Configuration
from cpl.core.environment import Environment
@@ -24,6 +24,8 @@ def main():
app.with_database()
app.with_authentication()
app.with_authorization()
app.with_route(path="/route1", fn=lambda r: JSONResponse("route1"), method="GET")
app.with_routes_directory("routes")

View File

@@ -3,11 +3,14 @@ from urllib.request import Request
from starlette.responses import JSONResponse
from cpl.api.router import Router
from cpl.auth.permission.permissions import Permissions
from cpl.core.log import Logger
from service import PingService
@Router.authenticate()
@Router.authorize(permissions=[Permissions.administrator])
# @Router.authorize(policies=["test"])
@Router.get(f"/ping")
async def ping(r: Request, ping: PingService, logger: Logger):
logger.info(f"Ping: {ping}")