feat(auth): use Wayne native role APIs
This commit is contained in:
@@ -59,7 +59,6 @@ export const businessLineApi = {
|
||||
business_line_id: number
|
||||
target_user_id: number
|
||||
target_business_line_id: number
|
||||
permission: 0 | 1
|
||||
}): Promise<void> {
|
||||
await request('/auth/api/v1/business-lines/authorizations', {
|
||||
method: 'POST',
|
||||
@@ -69,7 +68,7 @@ export const businessLineApi = {
|
||||
|
||||
async listWayneNamespaces(): Promise<WayneNamespace[]> {
|
||||
const data = await request('/auth/api/v1/wayne/namespaces')
|
||||
const items = Array.isArray(data.data) ? data.data : Array.isArray(data.items) ? data.items : []
|
||||
const items = Array.isArray(data.data?.list) ? data.data.list : []
|
||||
return items.map((item: any) => ({
|
||||
id: Number(item.id),
|
||||
name: item.name || '',
|
||||
|
||||
@@ -6,9 +6,14 @@ export interface UserOption {
|
||||
}
|
||||
|
||||
export const userApi = {
|
||||
async list(): Promise<UserOption[]> {
|
||||
async list(params: { businessLineId?: number } = {}): Promise<UserOption[]> {
|
||||
const token = getToken()
|
||||
const response = await fetch('/auth/api/v1/users', {
|
||||
const query = new URLSearchParams()
|
||||
if (params.businessLineId) {
|
||||
query.set('business_line_id', String(params.businessLineId))
|
||||
}
|
||||
const path = query.toString() ? `/auth/api/v1/users?${query}` : '/auth/api/v1/users'
|
||||
const response = await fetch(path, {
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
||||
|
||||
@@ -19,9 +19,6 @@
|
||||
<el-option v-for="item in businessLineStore.items" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="权限">
|
||||
<el-segmented v-model="grantForm.permission" :options="permissionOptions" />
|
||||
</el-form-item>
|
||||
<el-button type="primary" :loading="granting" @click="grantPermission">保存分配</el-button>
|
||||
</el-form>
|
||||
|
||||
@@ -72,18 +69,11 @@ const savingWayneNamespaces = ref(false)
|
||||
const grantForm = reactive<{
|
||||
target_user_id: number | null
|
||||
target_business_line_id: number | null
|
||||
permission: 0 | 1
|
||||
}>({
|
||||
target_user_id: null,
|
||||
target_business_line_id: null,
|
||||
permission: 1,
|
||||
})
|
||||
|
||||
const permissionOptions = [
|
||||
{ label: '管理员', value: 0 },
|
||||
{ label: '普通用户', value: 1 },
|
||||
]
|
||||
|
||||
watch(
|
||||
() => businessLineStore.current?.id,
|
||||
(id) => {
|
||||
@@ -139,7 +129,6 @@ async function grantPermission() {
|
||||
business_line_id: businessLineID,
|
||||
target_user_id: grantForm.target_user_id,
|
||||
target_business_line_id: grantForm.target_business_line_id,
|
||||
permission: grantForm.permission,
|
||||
})
|
||||
ElMessage.success('已保存业务线分配')
|
||||
} catch (error) {
|
||||
|
||||
@@ -239,10 +239,11 @@ const operatorStateDetail = computed(() => {
|
||||
watch(
|
||||
() => businessLineStore.current?.id,
|
||||
async () => {
|
||||
selectedUserId.value = null
|
||||
selectedNamespaceId.value = null
|
||||
selectedRoleIds.value = []
|
||||
userRoles.value = null
|
||||
await loadBusinessLineData()
|
||||
await Promise.all([loadUsers(), loadBusinessLineData()])
|
||||
},
|
||||
)
|
||||
|
||||
@@ -286,14 +287,25 @@ async function loadSystems() {
|
||||
}
|
||||
|
||||
async function loadUsers() {
|
||||
const businessLineId = currentBusinessLineId.value
|
||||
if (!businessLineId) {
|
||||
users.value = []
|
||||
selectedUserId.value = null
|
||||
return
|
||||
}
|
||||
loadingUsers.value = true
|
||||
try {
|
||||
users.value = await userApi.list()
|
||||
users.value = await userApi.list({ businessLineId })
|
||||
if (!selectedUserId.value && users.value.length) {
|
||||
selectedUserId.value = users.value[0].uid
|
||||
await loadSelectedUserRoles()
|
||||
} else if (selectedUserId.value && !users.value.some((user) => user.uid === selectedUserId.value)) {
|
||||
selectedUserId.value = users.value[0]?.uid || null
|
||||
await loadSelectedUserRoles()
|
||||
}
|
||||
} catch (error) {
|
||||
users.value = []
|
||||
selectedUserId.value = null
|
||||
ElMessage.error(error instanceof Error ? error.message : '查询用户失败')
|
||||
} finally {
|
||||
loadingUsers.value = false
|
||||
|
||||
Reference in New Issue
Block a user