adapt pedagogy api to api key auth

This commit is contained in:
imperosol 2025-05-20 18:13:44 +02:00
parent a11897cd10
commit 1ccd24b69a

View File

@ -3,10 +3,12 @@ from typing import Annotated
from annotated_types import Ge from annotated_types import Ge
from ninja import Query from ninja import Query
from ninja.security import SessionAuth
from ninja_extra import ControllerBase, api_controller, paginate, route from ninja_extra import ControllerBase, api_controller, paginate, route
from ninja_extra.exceptions import NotFound from ninja_extra.exceptions import NotFound
from ninja_extra.pagination import PageNumberPaginationExtra, PaginatedResponseSchema from ninja_extra.pagination import PageNumberPaginationExtra, PaginatedResponseSchema
from apikey.auth import ApiKeyAuth
from core.auth.api_permissions import HasPerm from core.auth.api_permissions import HasPerm
from pedagogy.models import UV from pedagogy.models import UV
from pedagogy.schemas import SimpleUvSchema, UvFilterSchema, UvSchema from pedagogy.schemas import SimpleUvSchema, UvFilterSchema, UvSchema
@ -17,6 +19,7 @@ from pedagogy.utbm_api import UtbmApiClient
class UvController(ControllerBase): class UvController(ControllerBase):
@route.get( @route.get(
"/{code}", "/{code}",
auth=[SessionAuth(), ApiKeyAuth()],
permissions=[ permissions=[
# this route will almost always be called in the context # this route will almost always be called in the context
# of a UV creation/edition # of a UV creation/edition
@ -42,6 +45,7 @@ class UvController(ControllerBase):
"", "",
response=PaginatedResponseSchema[SimpleUvSchema], response=PaginatedResponseSchema[SimpleUvSchema],
url_name="fetch_uvs", url_name="fetch_uvs",
auth=[SessionAuth(), ApiKeyAuth()],
permissions=[HasPerm("pedagogy.view_uv")], permissions=[HasPerm("pedagogy.view_uv")],
) )
@paginate(PageNumberPaginationExtra, page_size=100) @paginate(PageNumberPaginationExtra, page_size=100)