ui and backend improvements

This commit is contained in:
x032205
2025-05-21 19:46:47 -04:00
parent 7041b88b9d
commit 4d173ad163
3 changed files with 129 additions and 88 deletions
@@ -86,6 +86,7 @@ export const AccessApprovalRequest = ({
| (TAccessApprovalRequest & {
user: { firstName?: string; lastName?: string; email?: string } | null;
isRequestedByCurrentUser: boolean;
isSelfApproveAllowed: boolean;
isApprover: boolean;
})
| null
@@ -351,18 +352,24 @@ export const AccessApprovalRequest = ({
role="button"
tabIndex={0}
onClick={() => {
if (
// Whether the request has already been approved / rejected / reviewed
const isInactive =
details.isAccepted ||
details.isReviewedByUser ||
details.isRejectedByAnyone ||
(!details.isApprover &&
!(
details.isSoftEnforcement &&
details.isRequestedByCurrentUser &&
canBypassApprovalPermission
))
)
return;
details.isRejectedByAnyone;
// Whether the current user can bypass policy
const canBypass =
details.isSoftEnforcement &&
details.isRequestedByCurrentUser &&
canBypassApprovalPermission;
// Whether the current user can approve
const canApprove =
details.isApprover &&
(!details.isRequestedByCurrentUser || details.isSelfApproveAllowed);
if (isInactive || (!canApprove && !canBypass)) return;
if (
membersGroupById?.[request.requestedByUserId].user ||
@@ -376,6 +383,7 @@ export const AccessApprovalRequest = ({
? user
: membersGroupById?.[request.requestedByUserId].user,
isRequestedByCurrentUser: details.isRequestedByCurrentUser,
isSelfApproveAllowed: details.isSelfApproveAllowed,
isApprover: details.isApprover
});
}
@@ -383,18 +391,24 @@ export const AccessApprovalRequest = ({
handlePopUpOpen("reviewRequest");
}}
onKeyDown={(evt) => {
if (
// Whether the request has already been approved / rejected / reviewed
const isInactive =
details.isAccepted ||
details.isReviewedByUser ||
details.isRejectedByAnyone ||
(!details.isApprover &&
!(
details.isSoftEnforcement &&
details.isRequestedByCurrentUser &&
canBypassApprovalPermission
))
)
return;
details.isRejectedByAnyone;
// Whether the current user can bypass policy
const canBypass =
details.isSoftEnforcement &&
details.isRequestedByCurrentUser &&
canBypassApprovalPermission;
// Whether the current user can approve
const canApprove =
details.isApprover &&
(!details.isRequestedByCurrentUser || details.isSelfApproveAllowed);
if (isInactive || (!canApprove && !canBypass)) return;
if (evt.key === "Enter") {
if (
@@ -409,6 +423,7 @@ export const AccessApprovalRequest = ({
? user
: membersGroupById?.[request.requestedByUserId].user,
isRequestedByCurrentUser: details.isRequestedByCurrentUser,
isSelfApproveAllowed: details.isSelfApproveAllowed,
isApprover: details.isApprover
});
}
@@ -26,6 +26,7 @@ export const ReviewAccessRequestModal = ({
request: TAccessApprovalRequest & {
user: { firstName?: string; lastName?: string; email?: string } | null;
isRequestedByCurrentUser: boolean;
isSelfApproveAllowed: boolean;
isApprover: boolean;
};
projectSlug: string;
@@ -155,7 +156,6 @@ export const ReviewAccessRequestModal = ({
)}{" "}
is requesting access to the following resource:
</span>
<div className="mb-2 mt-4 border-l border-blue-500 bg-blue-500/20 px-3 py-2 text-mineshaft-200">
<div className="mb-1 lowercase">
<span className="font-bold capitalize">Requested path: </span>
@@ -179,16 +179,16 @@ export const ReviewAccessRequestModal = ({
</div>
)}
</div>
<div className="space-x-2">
<Button
isLoading={isLoading === "approved"}
isDisabled={
!!isLoading ||
(!request.isApprover &&
!bypassApproval &&
isSoftEnforcement &&
canBypassApprovalPermission)
(!(
request.isApprover &&
(!request.isRequestedByCurrentUser || request.isSelfApproveAllowed)
) &&
!bypassApproval)
}
onClick={() => handleReview("approved")}
className="mt-4"
@@ -207,10 +207,9 @@ export const ReviewAccessRequestModal = ({
Reject Request
</Button>
</div>
{isSoftEnforcement &&
request.isRequestedByCurrentUser &&
!request.isApprover &&
!(request.isApprover && request.isSelfApproveAllowed) &&
canBypassApprovalPermission && (
<div className="mt-2 flex flex-col space-y-2">
<Checkbox