Files
rustfs-console/composables/useUsers.ts
T
junxiang Mu c019276fcb add kms
Signed-off-by: junxiang Mu <1948535941@qq.com>
2025-09-22 14:31:07 +08:00

92 lines
2.4 KiB
TypeScript

export const useUsers = () => {
const { $api } = useNuxtApp();
/**
* List all users
*
* @returns
*/
const listUsers = async () => {
return await $api.get('/list-users');
};
const createUser = async (data: any) => {
const { accessKey } = data;
delete data.accessKey;
return await $api.put('/add-user' + `?accessKey=${encodeURIComponent(accessKey)}`, data);
};
const getUser = async (name: string) => {
return await $api.get(`/user-info?accessKey=${encodeURIComponent(name)}`);
};
const updateUser = async (name: string, data: any) => {
return await $api.put(`/user/${encodeURIComponent(name)}`, data);
};
/**
* 修改用户状态
* @param name
* @param data
* @returns
*/
const changeUserStatus = async (name: string, data: any) => {
return await $api.put(`/set-user-status?accessKey=${encodeURIComponent(name)}&status=${data.status}`, data);
};
const deleteUser = async (name: string) => {
return await $api.delete(`/remove-user?accessKey=${encodeURIComponent(name)}`, {});
};
const updateUserGroups = async (name: string, data: any) => {
return await $api.put(`/user/${encodeURIComponent(name)}/groups`, data);
};
const getUserPolicy = async () => {
return await $api.get(`/user/policy`);
};
const getSaUserPolicy = async (name: string) => {
return await $api.get(`/user/${encodeURIComponent(name)}/policies`);
};
/**
data{
name: string[]; //policy name
entityType: PolicyEntity; //user or group
entityName: string; //user name or group name
}
* @returns
*/
const setPolicy = async (data: any) => {
return await $api.put(`/set-policy`, data);
};
const listAllUserServiceAccounts = async (name: string) => {
return await $api.get(`/user/${encodeURIComponent(name)}/service-accounts`);
};
const createAUserServiceAccount = async (name: string, data: any) => {
return await $api.post(`/user/${encodeURIComponent(name)}/service-accounts`, data);
};
const createServiceAccountCredentials = async (name: string, data: any) => {
return await $api.post(`/user/${encodeURIComponent(name)}/service-account-credentials`, data);
};
return {
listUsers,
createUser,
getUser,
deleteUser,
changeUserStatus,
updateUser,
updateUserGroups,
getUserPolicy,
setPolicy,
getSaUserPolicy,
listAllUserServiceAccounts,
createAUserServiceAccount,
createServiceAccountCredentials,
};
};