Skip to content

Commit c066089

Browse files
committedNov 15, 2024
👌 #448 - feat: don't allow the reviewer to reassign a destruction list
1 parent 3040d3d commit c066089

File tree

4 files changed

+5
-33
lines changed

4 files changed

+5
-33
lines changed
 

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ class CanReassignDestructionList(permissions.BasePermission):
7474
message = _("You are not allowed to reassign the destruction list.")
7575

7676
def has_permission(self, request, view):
77-
return request.user.has_perm(
78-
"accounts.can_start_destruction"
79-
) or request.user.has_perm("accounts.can_review_destruction")
77+
return request.user.has_perm("accounts.can_start_destruction")
8078

8179
def has_object_permission(self, request, view, destruction_list):
8280
return destruction_list.status in [

‎backend/src/openarchiefbeheer/destruction/tests/e2e/issues/test_459_update_reviewer.py

-24
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,3 @@ async def test_scenario_record_manager_updates_reviewer(self):
3333

3434
await self.then.page_should_contain_text(page, "Destruction list to update")
3535
await self.then.list_should_have_assignee(page, destruction_list, reviewer2)
36-
37-
async def test_scenario_reviewer_updates_reviewer(self):
38-
async with browser_page() as page:
39-
record_manger = await self.given.record_manager_exists()
40-
reviewer1 = await self.given.reviewer_exists(username="reviewer1", first_name="John", last_name="Doe", post__can_start_destruction=True)
41-
reviewer2 = await self.given.reviewer_exists(username="reviewer2", first_name="Jane", last_name="Doe")
42-
43-
await self.given.assignee_exists(user=record_manger)
44-
assignee_reviewer1 = await self.given.assignee_exists(user=reviewer1)
45-
46-
destruction_list = await self.given.list_exists(name="Destruction list to update", assignees=[assignee_reviewer1], assignee=assignee_reviewer1.user, status=ListStatus.ready_to_review)
47-
48-
await self.when.reviewer_logs_in(page, username="reviewer1")
49-
await self.then.path_should_be(page, "/destruction-lists")
50-
await self.then.list_should_have_assignee(page, destruction_list, reviewer1)
51-
52-
await self.when.user_clicks_button(page, "Destruction list to update")
53-
await self.when.user_clicks_button(page, "Beoordelaar bewerken")
54-
await self.when.user_fills_form_field(page, "Beoordelaar", "Jane Doe (reviewer2)")
55-
await self.when.user_fills_form_field(page, "Reden", "gh-459")
56-
await self.when.user_clicks_button(page, "Toewijzen")
57-
58-
await self.then.page_should_contain_text(page, "Destruction list to update")
59-
await self.then.list_should_have_assignee(page, destruction_list, reviewer2)

‎frontend/src/components/DestructionListReviewer/DestructionListReviewer.stories.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ const assertEditCoReviewers: PlayFunction<ReactRenderer> = async (context) => {
150150
parameters: {
151151
form: form,
152152
formValues: {
153-
Beoordelaar: "Proces ei Genaar (Proces ei Genaar)",
154153
"Medebeoordelaar 2": "Co Reviewer (co-reviewer)",
155154
Reden: "Edit co-reviewers",
156155
},
@@ -166,7 +165,7 @@ const assertEditCoReviewers: PlayFunction<ReactRenderer> = async (context) => {
166165
libDestructionList,
167166
"reassignDestructionList",
168167
);
169-
expect(reassignDestructionList).toHaveBeenCalled();
168+
expect(reassignDestructionList).not.toHaveBeenCalled();
170169

171170
const updateCoReviewers = getMock(
172171
context.parameters,

‎frontend/src/components/DestructionListReviewer/DestructionListReviewer.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,9 @@ export function DestructionListReviewer({
8989
promises.push(promise);
9090
}
9191

92-
const reviewerPk = Number(reviewer);
93-
if (reviewerPk !== user?.pk) {
92+
if (reviewer) {
9493
const promise = reassignDestructionList(destructionList.uuid, {
95-
assignee: { user: reviewerPk },
94+
assignee: { user: Number(reviewer) },
9695
comment: String(comment),
9796
}).catch(async (e) => {
9897
console.error(e);
@@ -161,7 +160,7 @@ export function DestructionListReviewer({
161160
value: assignedCoReviewers[i]?.user.pk,
162161
}));
163162

164-
return [reviewer, ...coReviewerFields, comment];
163+
return [...coReviewerFields, comment];
165164
}
166165
return [reviewer, comment];
167166
}, [user, destructionList, reviewers, assignedCoReviewers]);

0 commit comments

Comments
 (0)
Please sign in to comment.