Skip to content

Commit 24da9a0

Browse files
committed
permissions: disable write operations if read-only mode is on
1 parent 652a564 commit 24da9a0

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

invenio_drafts_resources/services/records/permissions.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
#
33
# Copyright (C) 2020 CERN.
44
# Copyright (C) 2020 Northwestern University.
5+
# Copyright (C) 2022 TU Wien.
56
#
67
# Invenio-Drafts-Resources is free software; you can redistribute it and/or
78
# modify it under the terms of the MIT License; see LICENSE file for more
89
# details.
910

1011
"""Drafts permissions."""
1112

12-
from invenio_records_permissions.generators import AnyUser
13+
from invenio_records_permissions.generators import AnyUser, DisableIfReadOnly
1314
from invenio_records_permissions.policies.records import (
1415
RecordPermissionPolicy as RecordPermissionPolicyBase,
1516
)
@@ -21,10 +22,10 @@ class RecordPermissionPolicy(RecordPermissionPolicyBase):
2122
# FIXME: Revist this along the development
2223
# Default create should be "authenticated"?
2324
# TODO: Subclass records-resources policy and add *_draft actions
24-
can_create = [AnyUser()]
25-
can_new_version = [AnyUser()]
26-
can_edit = [AnyUser()]
27-
can_publish = [AnyUser()]
25+
can_create = [AnyUser(), DisableIfReadOnly()]
26+
can_new_version = [AnyUser(), DisableIfReadOnly()]
27+
can_edit = [AnyUser(), DisableIfReadOnly()]
28+
can_publish = [AnyUser(), DisableIfReadOnly()]
2829
can_read_draft = [AnyUser()]
29-
can_update_draft = [AnyUser()]
30-
can_delete_draft = [AnyUser()]
30+
can_update_draft = [AnyUser(), DisableIfReadOnly()]
31+
can_delete_draft = [AnyUser(), DisableIfReadOnly()]

0 commit comments

Comments
 (0)