Skip to content

security

django_spire.api.auth.security

ApiKeySecurity

Bases: APIKeyBase

Source code in django_spire/api/auth/security.py
def __init__(self, permission_required: ApiPermissionChoices | None = None) -> None:
    self.permission_required = permission_required
    super().__init__()

param_name = 'api_key' class-attribute instance-attribute

openapi_in = 'query' class-attribute instance-attribute

permission_required = permission_required instance-attribute

authenticate

Source code in django_spire/api/auth/security.py
def authenticate(self, request: HttpRequest, key: str | None) -> bool | str:
    if key is None:
        return False

    api_access = ApiAccess.objects.get_by_key_or_none(key)

    if api_access is not None:
        if self.permission_required is None:
            return api_access.name

        return api_access.permission >= self.permission_required

    return False