feat: allow admins to delete users

This commit is contained in:
Sheen Capadngan
2024-07-08 15:04:08 +08:00
parent 5eba61b647
commit 6e15979672
8 changed files with 247 additions and 6 deletions
+2 -1
View File
@@ -1,6 +1,7 @@
export {
useAddUserToWsE2EE,
useAddUserToWsNonE2EE,
useDeleteUser,
useSendEmailVerificationCode,
useVerifyEmailVerificationCode
} from "./mutation";
@@ -10,7 +11,6 @@ export {
useCreateAPIKey,
useDeleteAPIKey,
useDeleteOrgMembership,
useDeleteUser,
useGetMyAPIKeys,
useGetMyAPIKeysV2,
useGetMyIp,
@@ -19,6 +19,7 @@ export {
useGetOrgUsers,
useGetUser,
useGetUserAction,
useListUsers,
useLogoutUser,
useRegisterUserAction,
useRevokeMySessions,
+14
View File
@@ -112,3 +112,17 @@ export const useUpdateUserProjectFavorites = () => {
}
});
};
export const useDeleteUser = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: async (userId: string) => {
await apiRequest.delete(`/api/v1/user/${userId}`);
return {};
},
onSuccess: () => {
queryClient.invalidateQueries(userKeys.listUsers);
}
});
};
+9
View File
@@ -28,6 +28,7 @@ export const userKeys = {
myAPIKeys: ["api-keys"] as const,
myAPIKeysV2: ["api-keys-v2"] as const,
mySessions: ["sessions"] as const,
listUsers: ["user-list"] as const,
myOrganizationProjects: (orgId: string) => [{ orgId }, "organization-projects"] as const
};
@@ -40,6 +41,14 @@ export const fetchUserDetails = async () => {
export const useGetUser = () => useQuery(userKeys.getUser, fetchUserDetails);
export const fetchUsersList = async () => {
const { data } = await apiRequest.get<{ users: User[] }>("/api/v1/user/list");
return data.users;
};
export const useListUsers = () => useQuery(userKeys.listUsers, fetchUsersList);
export const useDeleteUser = () => {
const queryClient = useQueryClient();