Skip to content

user

User information router for v2 API.

router module-attribute

router = APIRouter(
    responses={401: {"description": "Invalid API key"}}
)

get_current_user_roles async

get_current_user_roles(
    apikey: Annotated[str, Depends(header_auth_scheme)],
) -> UserRolesResponse

Return the authenticated user's roles.

Source code in src/horde_model_reference/service/v2/routers/user.py
@router.get(
    "/me/roles",
    response_model=UserRolesResponse,
    summary="Get current user roles",
    description=(
        "Returns the authenticated user's roles and permissions for the horde-model-reference service. "
        "This endpoint validates the provided API key against the AI Horde API and checks which "
        "roles (approver, requestor) the user has been granted."
    ),
)
async def get_current_user_roles(
    apikey: Annotated[str, Depends(header_auth_scheme)],
) -> UserRolesResponse:
    """Return the authenticated user's roles."""
    context, roles = await get_user_roles(apikey)

    if context is None:
        raise APIKeyInvalidException()

    return UserRolesResponse(
        user_id=context.user_id,
        username=context.username,
        roles=sorted(roles),
        is_approver="approver" in roles,
        is_requestor="requestor" in roles,
    )