Coverage for documents/schema.py: 94%
16 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 09:07 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 09:07 +0000
1from drf_spectacular.extensions import OpenApiAuthenticationExtension
2from drf_spectacular.types import OpenApiTypes
3from drf_spectacular.utils import OpenApiParameter
4from drf_spectacular.utils import extend_schema
7class AngularApiAuthenticationOverrideScheme(OpenApiAuthenticationExtension):
8 target_class = "paperless.auth.AngularApiAuthenticationOverride"
9 name = "AngularApiAuthenticationOverride"
11 def get_security_definition(self, auto_schema): # pragma: no cover
12 return {
13 "type": "http",
14 "scheme": "basic",
15 }
18class PaperelessBasicAuthenticationScheme(OpenApiAuthenticationExtension):
19 target_class = "paperless.auth.PaperlessBasicAuthentication"
20 name = "PaperelessBasicAuthentication"
22 def get_security_definition(self, auto_schema):
23 return {
24 "type": "http",
25 "scheme": "basic",
26 }
29def generate_object_with_permissions_schema(serializer_class):
30 return {
31 operation: extend_schema(
32 parameters=[
33 OpenApiParameter(
34 name="full_perms",
35 type=OpenApiTypes.BOOL,
36 location=OpenApiParameter.QUERY,
37 ),
38 ],
39 responses={
40 200: serializer_class(many=operation == "list", all_fields=True),
41 },
42 )
43 for operation in ["list", "retrieve"]
44 }