mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-20 22:17:52 +00:00
Merge branch 'main' into feature/secret-reference-shortcut
This commit is contained in:
+8
-2
@@ -40,7 +40,7 @@ import {
|
||||
PreferenceKey,
|
||||
setUserTablePreference
|
||||
} from "@app/helpers/userTablePreferences";
|
||||
import { usePagination } from "@app/hooks";
|
||||
import { usePagination, useResetPageHelper } from "@app/hooks";
|
||||
import {
|
||||
useGetSecretApprovalRequestCount,
|
||||
useGetSecretApprovalRequests,
|
||||
@@ -99,6 +99,12 @@ export const SecretApprovalRequest = () => {
|
||||
const totalApprovalCount = data?.totalCount ?? 0;
|
||||
const secretApprovalRequests = data?.approvals ?? [];
|
||||
|
||||
useResetPageHelper({
|
||||
totalCount: totalApprovalCount,
|
||||
offset,
|
||||
setPage
|
||||
});
|
||||
|
||||
const { data: secretApprovalRequestCount, isSuccess: isSecretApprovalReqCountSuccess } =
|
||||
useGetSecretApprovalRequestCount({ projectId });
|
||||
const { user: userSession } = useUser();
|
||||
@@ -107,7 +113,7 @@ export const SecretApprovalRequest = () => {
|
||||
});
|
||||
|
||||
const { permission } = useProjectPermission();
|
||||
const { data: members } = useGetWorkspaceUsers(projectId);
|
||||
const { data: members } = useGetWorkspaceUsers(projectId, true);
|
||||
const isSecretApprovalScreen = Boolean(selectedApprovalId);
|
||||
const { requestId } = search;
|
||||
|
||||
|
||||
+3
-6
@@ -221,9 +221,7 @@ export const SecretApprovalRequestChangeItem = ({
|
||||
<div className="mb-2">
|
||||
<div className="text-sm font-medium text-mineshaft-300">Multi-line Encoding</div>
|
||||
<div className="text-sm">
|
||||
{secretVersion?.skipMultilineEncoding?.toString() || (
|
||||
<span className="text-sm text-mineshaft-300">-</span>
|
||||
)}{" "}
|
||||
{secretVersion?.skipMultilineEncoding?.toString() || "false"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -366,9 +364,8 @@ export const SecretApprovalRequestChangeItem = ({
|
||||
<div className="text-sm font-medium text-mineshaft-300">Multi-line Encoding</div>
|
||||
<div className="text-sm">
|
||||
{newVersion?.skipMultilineEncoding?.toString() ??
|
||||
secretVersion?.skipMultilineEncoding?.toString() ?? (
|
||||
<span className="text-sm text-mineshaft-300">-</span>
|
||||
)}{" "}
|
||||
secretVersion?.skipMultilineEncoding?.toString() ??
|
||||
"false"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+48
-7
@@ -2,6 +2,7 @@ import { useState } from "react";
|
||||
import { faEye } from "@fortawesome/free-regular-svg-icons";
|
||||
import {
|
||||
faArrowRotateRight,
|
||||
faBan,
|
||||
faDesktop,
|
||||
faEyeSlash,
|
||||
faServer,
|
||||
@@ -68,10 +69,14 @@ export const SecretVersionItem = ({
|
||||
const getLinkToModifyHistoryEntity = (
|
||||
actorId: string,
|
||||
actorType: string,
|
||||
membershipId: string | null = ""
|
||||
membershipId: string | null = "",
|
||||
groupId: string | null = "",
|
||||
actorName: string | null = ""
|
||||
) => {
|
||||
switch (actorType) {
|
||||
case ActorType.USER:
|
||||
if (groupId)
|
||||
return `/projects/secret-management/${currentProject.id}/groups/${groupId}?username=${actorName}`;
|
||||
return `/projects/secret-management/${currentProject.id}/members/${membershipId}`;
|
||||
case ActorType.IDENTITY:
|
||||
return `/projects/secret-management/${currentProject.id}/identities/${actorId}`;
|
||||
@@ -83,10 +88,26 @@ export const SecretVersionItem = ({
|
||||
const onModifyHistoryClick = (
|
||||
actorId: string | undefined | null,
|
||||
actorType: string | undefined | null,
|
||||
membershipId: string | undefined | null
|
||||
membershipId: string | undefined | null,
|
||||
groupId: string | undefined | null,
|
||||
actorName: string | undefined | null
|
||||
) => {
|
||||
if (!membershipId) {
|
||||
createNotification({
|
||||
type: "info",
|
||||
text: `This ${actorType === ActorType.USER ? "user" : "identity"} is no longer a member of this project.`
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (actorType && actorId && actorType !== ActorType.PLATFORM) {
|
||||
const redirectLink = getLinkToModifyHistoryEntity(actorId, actorType, membershipId);
|
||||
const redirectLink = getLinkToModifyHistoryEntity(
|
||||
actorId,
|
||||
actorType,
|
||||
membershipId,
|
||||
groupId,
|
||||
actorName
|
||||
);
|
||||
if (redirectLink) {
|
||||
navigate({ to: redirectLink });
|
||||
}
|
||||
@@ -157,15 +178,35 @@ export const SecretVersionItem = ({
|
||||
<div className="flex flex-row">
|
||||
<div className="flex w-fit flex-row text-sm">
|
||||
Modified by:
|
||||
<Tooltip content={getModifiedByName(actor.actorType, actor.name)}>
|
||||
<Tooltip
|
||||
className="z-[100] max-w-sm"
|
||||
content={
|
||||
getModifiedByName(actor.actorType, actor.name) +
|
||||
(!actor.membershipId && actor.actorId ? " (Removed from project)" : "")
|
||||
}
|
||||
>
|
||||
{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */}
|
||||
<div
|
||||
onClick={() =>
|
||||
onModifyHistoryClick(actor.actorId, actor.actorType, actor.membershipId)
|
||||
onClick={
|
||||
actor.membershipId
|
||||
? () =>
|
||||
onModifyHistoryClick(
|
||||
actor.actorId,
|
||||
actor.actorType,
|
||||
actor.membershipId,
|
||||
actor.groupId,
|
||||
actor.name
|
||||
)
|
||||
: undefined
|
||||
}
|
||||
className="cursor-pointer"
|
||||
className={actor.membershipId ? "cursor-pointer" : undefined}
|
||||
>
|
||||
<FontAwesomeIcon icon={getModifiedByIcon(actor.actorType)} className="ml-2" />
|
||||
{!actor.membershipId &&
|
||||
actor.actorType &&
|
||||
[ActorType.USER, ActorType.IDENTITY].includes(
|
||||
actor.actorType as ActorType
|
||||
) && <FontAwesomeIcon className="ml-1 text-mineshaft-400" icon={faBan} />}
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user