Skip to content

Commit 74f8628

Browse files
authored
Merge pull request #745 from maykinmedia/fix/663-administrator-unassigns-co-reviewers
[#663] Administrator unassigns co reviewers
2 parents fc16eca + 27d673f commit 74f8628

File tree

2 files changed

+55
-3
lines changed

2 files changed

+55
-3
lines changed

backend/src/openarchiefbeheer/destruction/api/permissions.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -157,15 +157,15 @@ def has_permission(self, request, view):
157157
) or request.user.has_perm("accounts.can_start_destruction")
158158

159159
def has_object_permission(self, request, view, destruction_list):
160-
if request.user.has_perm("accounts.can_review_destruction"):
161-
return destruction_list.status == ListStatus.ready_to_review
162-
163160
if request.user.has_perm("accounts.can_start_destruction"):
164161
return destruction_list.status in [
165162
ListStatus.ready_to_review,
166163
ListStatus.new,
167164
]
168165

166+
if request.user.has_perm("accounts.can_review_destruction"):
167+
return destruction_list.status == ListStatus.ready_to_review
168+
169169
return False
170170

171171

backend/src/openarchiefbeheer/destruction/tests/endpoints/test_co_reviewers.py

+52
Original file line numberDiff line numberDiff line change
@@ -470,3 +470,55 @@ def test_record_manager_assigns_themselves_to_new_list(self):
470470

471471
self.assertEqual(1, len(coreviewers))
472472
self.assertEqual(coreviewers[0].user.pk, administrator.pk)
473+
474+
@tag("gh-663")
475+
def test_record_manager_changes_coreviewers_list(self):
476+
author = UserFactory.create(
477+
username="record_manager",
478+
post__can_start_destruction=True,
479+
)
480+
reviewer = UserFactory.create(
481+
username="reviewer",
482+
post__can_review_destruction=True,
483+
)
484+
administrator = UserFactory.create(
485+
username="administrator",
486+
post__can_start_destruction=True,
487+
post__can_co_review_destruction=True,
488+
post__can_review_destruction=True,
489+
)
490+
destruction_list = DestructionListFactory.create(
491+
status=ListStatus.new,
492+
name="Test assignement to new list",
493+
author=author,
494+
assignee=reviewer,
495+
)
496+
DestructionListAssigneeFactory.create(
497+
role=ListRole.author,
498+
user=author,
499+
destruction_list=destruction_list,
500+
)
501+
DestructionListAssigneeFactory.create(
502+
role=ListRole.main_reviewer,
503+
destruction_list=destruction_list,
504+
user=reviewer,
505+
)
506+
507+
self.client.force_authenticate(user=administrator)
508+
response = self.client.put(
509+
reverse(
510+
"api:co-reviewers-list",
511+
kwargs={"destruction_list_uuid": destruction_list.uuid},
512+
),
513+
data={
514+
"comment": "test",
515+
"add": [],
516+
},
517+
format="json",
518+
)
519+
520+
self.assertEqual(response.status_code, status.HTTP_200_OK)
521+
522+
coreviewers = destruction_list.assignees.filter(role=ListRole.co_reviewer)
523+
524+
self.assertEqual(0, len(coreviewers))

0 commit comments

Comments
 (0)