mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-16 13:56:43 +00:00
feat: completed identity project detail screen
This commit is contained in:
@@ -15,16 +15,11 @@ export const useCreateIdentityProjectAdditionalPrivilege = () => {
|
||||
|
||||
return useMutation<TIdentityProjectPrivilege, {}, TCreateIdentityProjectPrivilegeDTO>({
|
||||
mutationFn: async (dto) => {
|
||||
const { data } = await apiRequest.post(
|
||||
"/api/v1/additional-privilege/identity/permanent",
|
||||
dto
|
||||
);
|
||||
const { data } = await apiRequest.post("/api/v2/identity-project-additional-privilege", dto);
|
||||
return data.privilege;
|
||||
},
|
||||
onSuccess: (_, { projectSlug, identityId }) => {
|
||||
queryClient.invalidateQueries(
|
||||
identitiyProjectPrivilegeKeys.list({ projectSlug, identityId })
|
||||
);
|
||||
onSuccess: (_, { projectId, identityId }) => {
|
||||
queryClient.invalidateQueries(identitiyProjectPrivilegeKeys.list({ projectId, identityId }));
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -33,19 +28,22 @@ export const useUpdateIdentityProjectAdditionalPrivilege = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation<TIdentityProjectPrivilege, {}, TUpdateIdentityProjectPrivlegeDTO>({
|
||||
mutationFn: async ({ privilegeSlug, projectSlug, identityId, privilegeDetails }) => {
|
||||
const { data: res } = await apiRequest.patch("/api/v1/additional-privilege/identity", {
|
||||
privilegeSlug,
|
||||
projectSlug,
|
||||
identityId,
|
||||
privilegeDetails
|
||||
});
|
||||
mutationFn: async ({ projectId, privilegeId, identityId, permissions, slug, type }) => {
|
||||
const { data: res } = await apiRequest.patch(
|
||||
`/api/v2/identity-project-additional-privilege/${privilegeId}`,
|
||||
{
|
||||
privilegeId,
|
||||
projectId,
|
||||
identityId,
|
||||
permissions,
|
||||
slug,
|
||||
type
|
||||
}
|
||||
);
|
||||
return res.privilege;
|
||||
},
|
||||
onSuccess: (_, { projectSlug, identityId }) => {
|
||||
queryClient.invalidateQueries(
|
||||
identitiyProjectPrivilegeKeys.list({ projectSlug, identityId })
|
||||
);
|
||||
onSuccess: (_, { projectId, identityId }) => {
|
||||
queryClient.invalidateQueries(identitiyProjectPrivilegeKeys.list({ projectId, identityId }));
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -54,20 +52,21 @@ export const useDeleteIdentityProjectAdditionalPrivilege = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation<TIdentityProjectPrivilege, {}, TDeleteIdentityProjectPrivilegeDTO>({
|
||||
mutationFn: async ({ identityId, projectSlug, privilegeSlug }) => {
|
||||
const { data } = await apiRequest.delete("/api/v1/additional-privilege/identity", {
|
||||
data: {
|
||||
identityId,
|
||||
projectSlug,
|
||||
privilegeSlug
|
||||
mutationFn: async ({ identityId, projectId, privilegeId }) => {
|
||||
const { data } = await apiRequest.delete(
|
||||
`/api/v2/identity-project-additional-privilege/${privilegeId}`,
|
||||
{
|
||||
data: {
|
||||
identityId,
|
||||
privilegeId,
|
||||
projectId
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
return data.privilege;
|
||||
},
|
||||
onSuccess: (_, { projectSlug, identityId }) => {
|
||||
queryClient.invalidateQueries(
|
||||
identitiyProjectPrivilegeKeys.list({ projectSlug, identityId })
|
||||
);
|
||||
onSuccess: (_, { projectId, identityId }) => {
|
||||
queryClient.invalidateQueries(identitiyProjectPrivilegeKeys.list({ projectId, identityId }));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -9,36 +9,36 @@ import {
|
||||
} from "./types";
|
||||
|
||||
export const identitiyProjectPrivilegeKeys = {
|
||||
details: ({ identityId, privilegeSlug, projectSlug }: TGetIdentityProjectPrivilegeDetails) =>
|
||||
details: ({ identityId, privilegeId, projectId }: TGetIdentityProjectPrivilegeDetails) =>
|
||||
[
|
||||
"identity-user-privilege",
|
||||
{
|
||||
identityId,
|
||||
projectSlug,
|
||||
privilegeSlug
|
||||
projectId,
|
||||
privilegeId
|
||||
}
|
||||
] as const,
|
||||
list: ({ projectSlug, identityId }: TListIdentityProjectPrivileges) =>
|
||||
["identity-user-privileges", { identityId, projectSlug }] as const
|
||||
list: ({ projectId, identityId }: TListIdentityProjectPrivileges) =>
|
||||
["identity-user-privileges", { identityId, projectId }] as const
|
||||
};
|
||||
|
||||
export const useGetIdentityProjectPrivilegeDetails = ({
|
||||
projectSlug,
|
||||
projectId,
|
||||
identityId,
|
||||
privilegeSlug
|
||||
privilegeId
|
||||
}: TGetIdentityProjectPrivilegeDetails) => {
|
||||
return useQuery({
|
||||
enabled: Boolean(projectSlug && identityId && privilegeSlug),
|
||||
queryKey: identitiyProjectPrivilegeKeys.details({ projectSlug, privilegeSlug, identityId }),
|
||||
enabled: Boolean(projectId && identityId && privilegeId),
|
||||
queryKey: identitiyProjectPrivilegeKeys.details({ projectId, privilegeId, identityId }),
|
||||
queryFn: async () => {
|
||||
const {
|
||||
data: { privilege }
|
||||
} = await apiRequest.get<{
|
||||
privilege: TIdentityProjectPrivilege;
|
||||
}>(`/api/v1/additional-privilege/identity/${privilegeSlug}`, {
|
||||
}>(`/api/v2/identity-project-additional-privilege/${privilegeId}`, {
|
||||
params: {
|
||||
identityId,
|
||||
projectSlug
|
||||
projectId
|
||||
}
|
||||
});
|
||||
return privilege;
|
||||
@@ -47,19 +47,19 @@ export const useGetIdentityProjectPrivilegeDetails = ({
|
||||
};
|
||||
|
||||
export const useListIdentityProjectPrivileges = ({
|
||||
projectSlug,
|
||||
projectId,
|
||||
identityId
|
||||
}: TListIdentityProjectPrivileges) => {
|
||||
return useQuery({
|
||||
enabled: Boolean(projectSlug && identityId),
|
||||
queryKey: identitiyProjectPrivilegeKeys.list({ projectSlug, identityId }),
|
||||
enabled: Boolean(projectId && identityId),
|
||||
queryKey: identitiyProjectPrivilegeKeys.list({ projectId, identityId }),
|
||||
queryFn: async () => {
|
||||
const {
|
||||
data: { privileges }
|
||||
} = await apiRequest.get<{
|
||||
privileges: Array<TIdentityProjectPrivilege>;
|
||||
}>("/api/v1/additional-privilege/identity", {
|
||||
params: { identityId, projectSlug }
|
||||
}>("/api/v2/identity-project-additional-privilege", {
|
||||
params: { identityId, projectId }
|
||||
});
|
||||
return privileges;
|
||||
}
|
||||
|
||||
@@ -28,48 +28,42 @@ export type TIdentityProjectPrivilege = {
|
||||
}
|
||||
);
|
||||
|
||||
export type TProjectSpecificPrivilegePermission = {
|
||||
conditions: {
|
||||
environment: string;
|
||||
secretPath?: { $glob: string };
|
||||
};
|
||||
actions: string[];
|
||||
subject: string;
|
||||
};
|
||||
|
||||
export type TCreateIdentityProjectPrivilegeDTO = {
|
||||
identityId: string;
|
||||
projectSlug: string;
|
||||
projectId: string;
|
||||
slug?: string;
|
||||
isTemporary?: boolean;
|
||||
temporaryMode?: IdentityProjectAdditionalPrivilegeTemporaryMode;
|
||||
temporaryRange?: string;
|
||||
temporaryAccessStartTime?: string;
|
||||
privilegePermission: TProjectSpecificPrivilegePermission;
|
||||
type:
|
||||
| {
|
||||
isTemporary: true;
|
||||
temporaryMode?: IdentityProjectAdditionalPrivilegeTemporaryMode;
|
||||
temporaryRange?: string;
|
||||
temporaryAccessStartTime?: string;
|
||||
}
|
||||
| {
|
||||
isTemporary: false;
|
||||
};
|
||||
permissions: TProjectPermission[];
|
||||
};
|
||||
|
||||
export type TUpdateIdentityProjectPrivlegeDTO = {
|
||||
projectSlug: string;
|
||||
projectId: string;
|
||||
identityId: string;
|
||||
privilegeSlug: string;
|
||||
privilegeDetails: Partial<
|
||||
Omit<TCreateIdentityProjectPrivilegeDTO, "projectMembershipId" | "projectId">
|
||||
>;
|
||||
};
|
||||
privilegeId: string;
|
||||
} & Partial<Omit<TCreateIdentityProjectPrivilegeDTO, "projectMembershipId" | "projectId">>;
|
||||
|
||||
export type TDeleteIdentityProjectPrivilegeDTO = {
|
||||
projectSlug: string;
|
||||
projectId: string;
|
||||
identityId: string;
|
||||
privilegeSlug: string;
|
||||
privilegeId: string;
|
||||
};
|
||||
|
||||
export type TListIdentityUserPrivileges = {
|
||||
projectSlug: string;
|
||||
projectId: string;
|
||||
identityId: string;
|
||||
};
|
||||
|
||||
export type TGetIdentityProejctPrivilegeDetails = {
|
||||
projectSlug: string;
|
||||
projectId: string;
|
||||
identityId: string;
|
||||
privilegeSlug: string;
|
||||
privilegeId: string;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user