mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 23:27:14 +00:00
Merge pull request #2635 from Infisical/feat/allow-approvers-to-bypass-secret-change-requests
feat: allow approvers to bypass secret change requests
This commit is contained in:
+13
-7
@@ -7,7 +7,8 @@ import {
|
|||||||
faSquareCheck,
|
faSquareCheck,
|
||||||
faSquareXmark,
|
faSquareXmark,
|
||||||
faTriangleExclamation,
|
faTriangleExclamation,
|
||||||
faUserLock} from "@fortawesome/free-solid-svg-icons";
|
faUserLock
|
||||||
|
} from "@fortawesome/free-solid-svg-icons";
|
||||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||||
import { twMerge } from "tailwind-merge";
|
import { twMerge } from "tailwind-merge";
|
||||||
|
|
||||||
@@ -38,7 +39,7 @@ export const SecretApprovalRequestAction = ({
|
|||||||
isMergable,
|
isMergable,
|
||||||
approvals,
|
approvals,
|
||||||
statusChangeByEmail,
|
statusChangeByEmail,
|
||||||
workspaceId,
|
workspaceId,
|
||||||
enforcementLevel,
|
enforcementLevel,
|
||||||
canApprove
|
canApprove
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
@@ -112,16 +113,19 @@ export const SecretApprovalRequestAction = ({
|
|||||||
At least {approvals} approving review required
|
At least {approvals} approving review required
|
||||||
{Boolean(statusChangeByEmail) && `. Reopened by ${statusChangeByEmail}`}
|
{Boolean(statusChangeByEmail) && `. Reopened by ${statusChangeByEmail}`}
|
||||||
</span>
|
</span>
|
||||||
{!canApprove && isSoftEnforcement && (
|
{isSoftEnforcement && !isMergable && (
|
||||||
<div className="mt-2 flex flex-col space-y-2">
|
<div className="mt-2 flex flex-col space-y-2">
|
||||||
<Checkbox
|
<Checkbox
|
||||||
onCheckedChange={(checked) => setByPassApproval(checked === true)}
|
onCheckedChange={(checked) => setByPassApproval(checked === true)}
|
||||||
isChecked={byPassApproval}
|
isChecked={byPassApproval}
|
||||||
id="byPassApproval"
|
id="byPassApproval"
|
||||||
checkIndicatorBg="text-white"
|
checkIndicatorBg="text-white"
|
||||||
className={twMerge("mr-2", byPassApproval ? "bg-red hover:bg-red-600 border-red" : "")}
|
className={twMerge(
|
||||||
|
"mr-2",
|
||||||
|
byPassApproval ? "border-red bg-red hover:bg-red-600" : ""
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
<span className="text-red text-xs">
|
<span className="text-xs text-red">
|
||||||
Merge without waiting for approval (bypass secret change policy)
|
Merge without waiting for approval (bypass secret change policy)
|
||||||
</span>
|
</span>
|
||||||
</Checkbox>
|
</Checkbox>
|
||||||
@@ -159,8 +163,10 @@ export const SecretApprovalRequestAction = ({
|
|||||||
<Button
|
<Button
|
||||||
leftIcon={<FontAwesomeIcon icon={!canApprove ? faLandMineOn : faCheck} />}
|
leftIcon={<FontAwesomeIcon icon={!canApprove ? faLandMineOn : faCheck} />}
|
||||||
isDisabled={
|
isDisabled={
|
||||||
(!isMergable && canApprove)
|
!(
|
||||||
|| (!canApprove && isSoftEnforcement && (!byPassApproval || !isValidBypassReason(bypassReason)))
|
(isMergable && canApprove) ||
|
||||||
|
(isSoftEnforcement && byPassApproval && isValidBypassReason(bypassReason))
|
||||||
|
)
|
||||||
}
|
}
|
||||||
isLoading={isMerging}
|
isLoading={isMerging}
|
||||||
onClick={handleSecretApprovalRequestMerge}
|
onClick={handleSecretApprovalRequestMerge}
|
||||||
|
|||||||
Reference in New Issue
Block a user