@@ -165,6 +135,23 @@
儲存
+
+
+
+ Group: {{ selectedGroupKey }}
+
+
+
+
+
+
+
+
+
+
+ 關閉
+
+
@@ -176,7 +163,7 @@ import {
getPermissionGroups,
createPermissionGroup,
updatePermissionGroup,
- addMemberToGroup,
+ getPermissionGroupPermissions,
groupGrant,
groupRevoke
} from '@/api/permission-groups'
@@ -184,14 +171,12 @@ import { getSystems } from '@/api/systems'
import { getModules } from '@/api/modules'
import { getCompanies } from '@/api/companies'
import { getSites } from '@/api/sites'
-import { getMembers } from '@/api/members'
const activeTab = ref('groups')
const systems = ref([])
const modules = ref([])
const companies = ref([])
const sites = ref([])
-const members = ref([])
const actionOptions = ['view', 'edit', 'manage', 'admin']
const filteredModuleOptions = computed(() => {
@@ -237,18 +222,16 @@ async function loadGroups() {
}
async function loadCatalogs() {
- const [systemsRes, modulesRes, companiesRes, sitesRes, membersRes] = await Promise.all([
+ const [systemsRes, modulesRes, companiesRes, sitesRes] = await Promise.all([
getSystems(),
getModules(),
getCompanies(),
- getSites(),
- getMembers()
+ getSites()
])
systems.value = systemsRes.data?.items || []
modules.value = modulesRes.data?.items || []
companies.value = companiesRes.data?.items || []
sites.value = sitesRes.data?.items || []
- members.value = membersRes.data?.items || []
}
// Create Group
@@ -313,25 +296,22 @@ async function handleEditGroup() {
}
}
-// Add Member
-const memberForm = reactive({ groupKey: '', authentikSub: '' })
-const addingMember = ref(false)
-const memberError = ref('')
-const memberSuccess = ref('')
+const showPermissionsDialog = ref(false)
+const loadingGroupPermissions = ref(false)
+const selectedGroupPermissions = ref([])
+const selectedGroupKey = ref('')
-async function handleAddMember() {
- memberError.value = ''
- memberSuccess.value = ''
- addingMember.value = true
+async function openPermissionsDialog(row) {
+ selectedGroupKey.value = row.group_key
+ showPermissionsDialog.value = true
+ loadingGroupPermissions.value = true
try {
- await addMemberToGroup(memberForm.groupKey, memberForm.authentikSub)
- memberSuccess.value = '加入成功'
- memberForm.groupKey = ''
- memberForm.authentikSub = ''
+ const res = await getPermissionGroupPermissions(row.group_key)
+ selectedGroupPermissions.value = res.data?.items || []
} catch (err) {
- memberError.value = '加入失敗,請稍後再試'
+ ElMessage.error('載入群組權限失敗')
} finally {
- addingMember.value = false
+ loadingGroupPermissions.value = false
}
}
diff --git a/src/pages/permissions/PermissionAdminPage.vue b/src/pages/permissions/PermissionAdminPage.vue
index 0dbc4ac..f8cca8e 100644
--- a/src/pages/permissions/PermissionAdminPage.vue
+++ b/src/pages/permissions/PermissionAdminPage.vue
@@ -154,6 +154,40 @@