diff --git a/invenio_config_tuw/permissions/policies.py b/invenio_config_tuw/permissions/policies.py index 254f598ed1b5bfc70e555f4ece93dd97acc8b263..429f8236edf2dbafc501b6ad34e875ad182cc868 100644 --- a/invenio_config_tuw/permissions/policies.py +++ b/invenio_config_tuw/permissions/policies.py @@ -9,6 +9,7 @@ from invenio_communities.permissions import CommunityPermissionPolicy from invenio_rdm_records.services import RDMRecordPermissionPolicy from invenio_rdm_records.services.generators import ( CommunityAction, + IfFileIsLocal, IfRestricted, RecordOwners, SubmissionReviewer, @@ -37,7 +38,7 @@ from .generators import ( class TUWRecordPermissionPolicy(RDMRecordPermissionPolicy): """Record permission policy of TU Wien.""" - # current state: invenio-rdm-records v0.39.1 + # current state: invenio-rdm-records v1.3.5 # # note: edit := create a draft from a record (i.e. putting it in edit mode), # which does not imply the permission to save the edits @@ -70,16 +71,20 @@ class TUWRecordPermissionPolicy(RDMRecordPermissionPolicy): can_search = can_all # noqa can_read = [IfRestricted("record", then_=can_view, else_=can_all)] + secret_links["view_record"] # noqa can_read_files = [IfRestricted("files", then_=can_view, else_=can_all) ] + secret_links["view_files"] # noqa + can_get_content_files = [IfFileIsLocal(then_=can_read_files, else_=[SystemProcess()]) ] # noqa can_create = can_basics + [TrustedUsers(), DisableIfReadOnly()] # noqa # drafts - can_search_drafts = can_authenticated # noqa - can_read_draft = can_preview # noqa - can_draft_read_files = can_preview # noqa - can_update_draft = can_review + [DisableIfReadOnly()] # noqa - can_draft_create_files = can_review + [DisableIfReadOnly()] # noqa - can_draft_update_files = can_review + [DisableIfReadOnly()] # noqa - can_draft_delete_files = can_review + [DisableIfReadOnly()] # noqa + can_search_drafts = can_authenticated # noqa + can_read_draft = can_preview # noqa + can_draft_read_files = can_preview # noqa + can_update_draft = can_review + [DisableIfReadOnly()] # noqa + can_draft_create_files = can_review + [DisableIfReadOnly()] # noqa + can_draft_set_content_files = can_review + [DisableIfReadOnly()] # noqa + can_draft_get_content_files = can_review + [DisableIfReadOnly()] # noqa + can_draft_commit_files = can_review + [DisableIfReadOnly()] # noqa + can_draft_update_files = can_review + [DisableIfReadOnly()] # noqa + can_draft_delete_files = can_review + [DisableIfReadOnly()] # noqa # PIDs can_pid_create = can_review + [DisableIfReadOnly()] # noqa @@ -102,6 +107,8 @@ class TUWRecordPermissionPolicy(RDMRecordPermissionPolicy): can_update = [Disable()] # noqa can_delete = [Disable()] # noqa can_create_files = [Disable()] # noqa + can_set_content_files = [Disable()] # noqa + can_commit_files = [Disable()] # noqa can_update_files = [Disable()] # noqa can_delete_files = [Disable()] # noqa # fmt: on @@ -112,7 +119,7 @@ class TUWRequestsPermissionPolicy(RequestsPermissionPolicy): # disable write operations if the system is in read-only mode # - # current state: invenio-requests v0.5.5 + # current state: invenio-requests v1.0.5 # fmt: off can_create = RequestsPermissionPolicy.can_create + [DisableIfReadOnly()] # noqa @@ -123,7 +130,7 @@ class TUWRequestsPermissionPolicy(RequestsPermissionPolicy): can_action_expire = RequestsPermissionPolicy.can_action_expire + [DisableIfReadOnly()] # noqa can_action_accept = RequestsPermissionPolicy.can_action_accept + [DisableIfReadOnly()] # noqa can_action_decline = RequestsPermissionPolicy.can_action_decline + [DisableIfReadOnly()] # noqa - can_create_comment = RequestsPermissionPolicy.can_read + [DisableIfReadOnly()] # noqa # TODO s/can_read/can_create_comment for invenio-requests > 0.5.5 + can_create_comment = RequestsPermissionPolicy.can_create_comment + [DisableIfReadOnly()] # noqa can_update_comment = RequestsPermissionPolicy.can_update_comment + [DisableIfReadOnly()] # noqa can_delete_comment = RequestsPermissionPolicy.can_delete_comment + [DisableIfReadOnly()] # noqa # fmt: on @@ -135,7 +142,7 @@ class TUWCommunitiesPermissionPolicy(CommunityPermissionPolicy): # for now, we want to restrict the creation of communities to admins # and disable write operations if the system is in read-only mode # - # current state: invenio-communities v3.1.0 + # current state: invenio-communities v4.1.2 # # TODO: discuss who should have permissions to create communities # -> new role?