From 91bfff71b7c05c9b9aad2c95282533eefbb6b2e7 Mon Sep 17 00:00:00 2001 From: TheCatLady <52870424+TheCatLady@users.noreply.github.com> Date: Fri, 10 Dec 2021 05:14:14 -0500 Subject: [PATCH] fix(requests): do not fail request edits if acting user lacks Manage Users permission (#2338) * fix(api): fix requestedBy logic in request edits * fix(frontend): do not display empty advanced request options box * fix(frontend): set max height on modal backdrop --- server/routes/request.ts | 4 ++-- src/components/Common/Modal/index.tsx | 2 +- .../RequestModal/AdvancedRequester/index.tsx | 15 +++++++++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/server/routes/request.ts b/server/routes/request.ts index d0a0e023..2e79ff4a 100644 --- a/server/routes/request.ts +++ b/server/routes/request.ts @@ -549,11 +549,11 @@ requestRoutes.put<{ requestId: string }>( }); } - let requestUser = req.user; + let requestUser = request.requestedBy; if ( req.body.userId && - req.body.userId !== req.user?.id && + req.body.userId !== request.requestedBy.id && !req.user?.hasPermission([ Permission.MANAGE_USERS, Permission.MANAGE_REQUESTS, diff --git a/src/components/Common/Modal/index.tsx b/src/components/Common/Modal/index.tsx index 08e92d95..8c39533a 100644 --- a/src/components/Common/Modal/index.tsx +++ b/src/components/Common/Modal/index.tsx @@ -111,7 +111,7 @@ const Modal: React.FC = ({ }} > {backdrop && ( -
+
= ({ ); } - if ((!data || selectedServer === null) && !selectedUser) { + if ( + (!data || + selectedServer === null || + (data.filter((server) => server.is4k === is4k).length < 2 && + (!serverData || + (serverData.profiles.length < 2 && + serverData.rootFolders.length < 2 && + (serverData.languageProfiles ?? []).length < 2 && + !serverData.tags?.length)))) && + (!selectedUser || (userData?.results ?? []).length < 2) + ) { return null; } @@ -503,7 +513,8 @@ const AdvancedRequester: React.FC = ({
)} {hasPermission([Permission.MANAGE_REQUESTS, Permission.MANAGE_USERS]) && - selectedUser && ( + selectedUser && + (userData?.results ?? []).length > 1 && (