More perms stuff, some doesnt work

This commit is contained in:
shamoon 2024-11-30 23:21:41 -08:00
parent 0aad777c3f
commit add7c627ab
2 changed files with 89 additions and 0 deletions

View File

@ -238,6 +238,39 @@ class OwnedObjectSerializer(
except KeyError:
pass
@extend_schema_field(
field={
"type": "object",
"properties": {
"view": {
"type": "object",
"properties": {
"users": {
"type": "array",
"items": {"type": "integer"},
},
"groups": {
"type": "array",
"items": {"type": "integer"},
},
},
},
"change": {
"type": "object",
"properties": {
"users": {
"type": "array",
"items": {"type": "integer"},
},
"groups": {
"type": "array",
"items": {"type": "integer"},
},
},
},
},
},
)
def get_permissions(self, obj) -> dict:
view_codename = f"view_{obj.__class__.__name__.lower()}"
change_codename = f"change_{obj.__class__.__name__.lower()}"

View File

@ -262,6 +262,29 @@ class PermissionsAwareDocumentCountMixin(PassUserMixin):
)
full_perms_schema = {
"list": extend_schema(
parameters=[
OpenApiParameter(
name="full_perms",
type=OpenApiTypes.BOOL,
location=OpenApiParameter.QUERY,
),
],
),
"retrieve": extend_schema(
parameters=[
OpenApiParameter(
name="full_perms",
type=OpenApiTypes.BOOL,
location=OpenApiParameter.QUERY,
),
],
),
}
@extend_schema_view(**full_perms_schema)
class CorrespondentViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
model = Correspondent
@ -298,6 +321,7 @@ class CorrespondentViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
return super().retrieve(request, *args, **kwargs)
@extend_schema_view(**full_perms_schema)
class TagViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
model = Tag
@ -322,6 +346,7 @@ class TagViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
ordering_fields = ("color", "name", "matching_algorithm", "match", "document_count")
@extend_schema_view(**full_perms_schema)
class DocumentTypeViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
model = DocumentType
@ -340,6 +365,36 @@ class DocumentTypeViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
@extend_schema_view(
list=extend_schema(
parameters=[
OpenApiParameter(
name="full_perms",
type=OpenApiTypes.BOOL,
location=OpenApiParameter.QUERY,
),
OpenApiParameter(
name="fields",
type=OpenApiTypes.STR,
many=True,
location=OpenApiParameter.QUERY,
),
],
),
retrieve=extend_schema(
parameters=[
OpenApiParameter(
name="full_perms",
type=OpenApiTypes.BOOL,
location=OpenApiParameter.QUERY,
),
OpenApiParameter(
name="fields",
type=OpenApiTypes.STR,
many=True,
location=OpenApiParameter.QUERY,
),
],
),
download=extend_schema(
description="Download the document",
parameters=[
@ -1958,6 +2013,7 @@ class BulkDownloadView(GenericAPIView):
return response
@extend_schema_view(**full_perms_schema)
class StoragePathViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
model = StoragePath