mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-15 18:15:53 +00:00
Merge pull request #2431 from Infisical/misc/terraform-project-group-prereq
misc: setup prerequisites for terraform project group
This commit is contained in:
@@ -38,17 +38,17 @@ export const useUpdateGroup = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({
|
||||
currentSlug,
|
||||
id,
|
||||
name,
|
||||
slug,
|
||||
role
|
||||
}: {
|
||||
currentSlug: string;
|
||||
id: string;
|
||||
name?: string;
|
||||
slug?: string;
|
||||
role?: string;
|
||||
}) => {
|
||||
const { data: group } = await apiRequest.patch<TGroup>(`/api/v1/groups/${currentSlug}`, {
|
||||
const { data: group } = await apiRequest.patch<TGroup>(`/api/v1/groups/${id}`, {
|
||||
name,
|
||||
slug,
|
||||
role
|
||||
@@ -65,8 +65,8 @@ export const useUpdateGroup = () => {
|
||||
export const useDeleteGroup = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({ slug }: { slug: string }) => {
|
||||
const { data: group } = await apiRequest.delete<TGroup>(`/api/v1/groups/${slug}`);
|
||||
mutationFn: async ({ id }: { id: string }) => {
|
||||
const { data: group } = await apiRequest.delete<TGroup>(`/api/v1/groups/${id}`);
|
||||
|
||||
return group;
|
||||
},
|
||||
@@ -79,8 +79,15 @@ export const useDeleteGroup = () => {
|
||||
export const useAddUserToGroup = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({ slug, username }: { slug: string; username: string }) => {
|
||||
const { data } = await apiRequest.post<TGroup>(`/api/v1/groups/${slug}/users/${username}`);
|
||||
mutationFn: async ({
|
||||
groupId,
|
||||
username
|
||||
}: {
|
||||
groupId: string;
|
||||
username: string;
|
||||
slug: string;
|
||||
}) => {
|
||||
const { data } = await apiRequest.post<TGroup>(`/api/v1/groups/${groupId}/users/${username}`);
|
||||
|
||||
return data;
|
||||
},
|
||||
@@ -93,8 +100,17 @@ export const useAddUserToGroup = () => {
|
||||
export const useRemoveUserFromGroup = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({ slug, username }: { slug: string; username: string }) => {
|
||||
const { data } = await apiRequest.delete<TGroup>(`/api/v1/groups/${slug}/users/${username}`);
|
||||
mutationFn: async ({
|
||||
username,
|
||||
groupId
|
||||
}: {
|
||||
slug: string;
|
||||
username: string;
|
||||
groupId: string;
|
||||
}) => {
|
||||
const { data } = await apiRequest.delete<TGroup>(
|
||||
`/api/v1/groups/${groupId}/users/${username}`
|
||||
);
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
@@ -4,7 +4,8 @@ import { apiRequest } from "@app/config/request";
|
||||
|
||||
export const groupKeys = {
|
||||
allGroupUserMemberships: () => ["group-user-memberships"] as const,
|
||||
forGroupUserMemberships: (slug: string) => [...groupKeys.allGroupUserMemberships(), slug] as const,
|
||||
forGroupUserMemberships: (slug: string) =>
|
||||
[...groupKeys.allGroupUserMemberships(), slug] as const,
|
||||
specificGroupUserMemberships: ({
|
||||
slug,
|
||||
offset,
|
||||
@@ -28,11 +29,13 @@ type TUser = {
|
||||
};
|
||||
|
||||
export const useListGroupUsers = ({
|
||||
id,
|
||||
groupSlug,
|
||||
offset = 0,
|
||||
limit = 10,
|
||||
username
|
||||
}: {
|
||||
id: string;
|
||||
groupSlug: string;
|
||||
offset: number;
|
||||
limit: number;
|
||||
@@ -52,14 +55,15 @@ export const useListGroupUsers = ({
|
||||
limit: String(limit),
|
||||
username
|
||||
});
|
||||
|
||||
const { data } = await apiRequest.get<{ users: TUser[]; totalCount: number; }>(
|
||||
`/api/v1/groups/${groupSlug}/users`, {
|
||||
|
||||
const { data } = await apiRequest.get<{ users: TUser[]; totalCount: number }>(
|
||||
`/api/v1/groups/${id}/users`,
|
||||
{
|
||||
params
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
return data;
|
||||
},
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -10,23 +10,24 @@ export const useAddGroupToWorkspace = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({
|
||||
groupSlug,
|
||||
projectSlug,
|
||||
groupId,
|
||||
projectId,
|
||||
role
|
||||
}: {
|
||||
groupSlug: string;
|
||||
projectSlug: string;
|
||||
groupId: string;
|
||||
projectId: string;
|
||||
role?: string;
|
||||
}) => {
|
||||
const {
|
||||
data: { groupMembership }
|
||||
} = await apiRequest.post(`/api/v2/workspace/${projectSlug}/groups/${groupSlug}`, {
|
||||
} = await apiRequest.post(`/api/v2/workspace/${projectId}/groups/${groupId}`, {
|
||||
role
|
||||
});
|
||||
|
||||
return groupMembership;
|
||||
},
|
||||
onSuccess: (_, { projectSlug }) => {
|
||||
queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectSlug));
|
||||
onSuccess: (_, { projectId }) => {
|
||||
queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectId));
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -34,17 +35,17 @@ export const useAddGroupToWorkspace = () => {
|
||||
export const useUpdateGroupWorkspaceRole = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({ groupSlug, projectSlug, roles }: TUpdateWorkspaceGroupRoleDTO) => {
|
||||
mutationFn: async ({ groupId, projectId, roles }: TUpdateWorkspaceGroupRoleDTO) => {
|
||||
const {
|
||||
data: { groupMembership }
|
||||
} = await apiRequest.patch(`/api/v2/workspace/${projectSlug}/groups/${groupSlug}`, {
|
||||
} = await apiRequest.patch(`/api/v2/workspace/${projectId}/groups/${groupId}`, {
|
||||
roles
|
||||
});
|
||||
|
||||
return groupMembership;
|
||||
},
|
||||
onSuccess: (_, { projectSlug }) => {
|
||||
queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectSlug));
|
||||
onSuccess: (_, { projectId }) => {
|
||||
queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectId));
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -53,20 +54,20 @@ export const useDeleteGroupFromWorkspace = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({
|
||||
groupSlug,
|
||||
projectSlug
|
||||
groupId,
|
||||
projectId
|
||||
}: {
|
||||
groupSlug: string;
|
||||
projectSlug: string;
|
||||
groupId: string;
|
||||
projectId: string;
|
||||
username?: string;
|
||||
}) => {
|
||||
const {
|
||||
data: { groupMembership }
|
||||
} = await apiRequest.delete(`/api/v2/workspace/${projectSlug}/groups/${groupSlug}`);
|
||||
} = await apiRequest.delete(`/api/v2/workspace/${projectId}/groups/${groupId}`);
|
||||
return groupMembership;
|
||||
},
|
||||
onSuccess: (_, { projectSlug, username }) => {
|
||||
queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectSlug));
|
||||
onSuccess: (_, { projectId, username }) => {
|
||||
queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectId));
|
||||
|
||||
if (username) {
|
||||
queryClient.invalidateQueries(userKeys.listUserGroupMemberships(username));
|
||||
|
||||
@@ -535,14 +535,14 @@ export const useGetWorkspaceIdentityMemberships = (
|
||||
});
|
||||
};
|
||||
|
||||
export const useListWorkspaceGroups = (projectSlug: string) => {
|
||||
export const useListWorkspaceGroups = (projectId: string) => {
|
||||
return useQuery({
|
||||
queryKey: workspaceKeys.getWorkspaceGroupMemberships(projectSlug),
|
||||
queryKey: workspaceKeys.getWorkspaceGroupMemberships(projectId),
|
||||
queryFn: async () => {
|
||||
const {
|
||||
data: { groupMemberships }
|
||||
} = await apiRequest.get<{ groupMemberships: TGroupMembership[] }>(
|
||||
`/api/v2/workspace/${projectSlug}/groups`
|
||||
`/api/v2/workspace/${projectId}/groups`
|
||||
);
|
||||
return groupMemberships;
|
||||
},
|
||||
|
||||
@@ -127,8 +127,8 @@ export type TUpdateWorkspaceIdentityRoleDTO = {
|
||||
};
|
||||
|
||||
export type TUpdateWorkspaceGroupRoleDTO = {
|
||||
groupSlug: string;
|
||||
projectSlug: string;
|
||||
groupId: string;
|
||||
projectId: string;
|
||||
roles: (
|
||||
| {
|
||||
role: string;
|
||||
|
||||
Reference in New Issue
Block a user