Files
rustfs-console/composables/useUsers.ts
T
2025-04-14 22:32:40 +08:00

108 lines
2.5 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
}
}