diff --git a/invenio_rdm_records/requests/community_inclusion.py b/invenio_rdm_records/requests/community_inclusion.py index d124b8ea1..3b3a4ebbc 100644 --- a/invenio_rdm_records/requests/community_inclusion.py +++ b/invenio_rdm_records/requests/community_inclusion.py @@ -107,6 +107,7 @@ class CommunityInclusion(RequestType): allowed_topic_ref_types = ["record"] needs_context = { "community_roles": ["owner", "manager", "curator"], + "record_permission": "preview", } available_actions = { diff --git a/invenio_rdm_records/requests/community_submission.py b/invenio_rdm_records/requests/community_submission.py index 9f7c584f9..71ec9c3d4 100644 --- a/invenio_rdm_records/requests/community_submission.py +++ b/invenio_rdm_records/requests/community_submission.py @@ -191,6 +191,7 @@ class CommunitySubmission(ReviewRequest): allowed_topic_ref_types = ["record"] needs_context = { "community_roles": ["owner", "manager", "curator"], + "record_permission": "preview", } available_actions = { diff --git a/invenio_rdm_records/requests/entity_resolvers.py b/invenio_rdm_records/requests/entity_resolvers.py index 2240227da..42a2c4775 100644 --- a/invenio_rdm_records/requests/entity_resolvers.py +++ b/invenio_rdm_records/requests/entity_resolvers.py @@ -70,11 +70,12 @@ def get_needs(self, ctx=None): A user that can preview a record can also read its requests. """ record = self.resolve() - # TODO: we might need different needs for drafts and published records - # e.g community submission request vs community inclusion request - needs = current_rdm_records_service.config.permission_policy_cls( - "preview", record=record - ).needs + needs = [] + record_permission = ctx.get("record_permission") + if record_permission: + needs = current_rdm_records_service.config.permission_policy_cls( + record_permission, record=record + ).needs return needs