Skip to content

Commit caa2c0c

Browse files
committed
Role management on new Admin UI. In development.
1 parent cc73800 commit caa2c0c

File tree

2 files changed

+35
-12
lines changed

2 files changed

+35
-12
lines changed

src/AdminUI/src/components/AdminPage.vue

+27-8
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,60 @@
22
<v-container fluid class="admin-page">
33
<v-card class="fill-height d-flex flex-column">
44
<v-tabs v-model="activeTab" color="primary" align-tabs="center">
5-
<v-tab :value="1">{{ $t('admin.tabs.userManagement') }}</v-tab>
6-
<v-tab :value="2">{{ $t('admin.tabs.rolesManagement') }}</v-tab>
5+
<v-tab :value="1" @click="fetchUsersAndRoles">{{
6+
$t('admin.tabs.userManagement') }}</v-tab>
7+
<v-tab :value="2" @click="fetchRoles">{{ $t('admin.tabs.rolesManagement') }}</v-tab>
78
<v-tab :value="3">{{ $t('admin.tabs.systemSettings') }}</v-tab>
89
<v-tab :value="4">{{ $t('admin.tabs.logs') }}</v-tab>
910
</v-tabs>
1011

1112
<v-card-text>
1213
<v-window v-model="activeTab">
1314
<v-window-item :value="1">
14-
<user-management-tab />
15+
<user-management-tab ref="userManagementTabRef" />
1516
</v-window-item>
1617

1718
<v-window-item :value="2">
18-
<roles-management-tab />
19+
<roles-management-tab ref="rolesManagementTabRef" />
1920
</v-window-item>
2021

2122
<v-window-item :value="3">
22-
<system-settings-tab />
23+
<system-settings-tab ref="systemSettingsTabRef" />
2324
</v-window-item>
2425

2526
<v-window-item :value="4">
26-
<logs-tab />
27+
<logs-tab ref="logsTab" />
2728
</v-window-item>
2829
</v-window>
2930
</v-card-text>
3031
</v-card>
3132
</v-container>
3233
</template>
3334

35+
3436
<script setup>
35-
import { ref } from 'vue';
3637
import UserManagementTab from './UserManagementTab.vue';
3738
import RolesManagementTab from './RolesManagementTab.vue';
3839
import SystemSettingsTab from './SystemSettingsTab.vue';
3940
import LogsTab from './LogsTab.vue';
41+
import { ref } from 'vue';
42+
43+
const userManagementTabRef = ref(null);
44+
const rolesManagementTabRef = ref(null);
45+
const systemSettingsTabRef = ref(null);
46+
const logsTab = ref(null);
47+
48+
const fetchUsersAndRoles = () => {
49+
if (userManagementTabRef?.value?.fetchUsers)
50+
userManagementTabRef.value.fetchUsers();
51+
if (userManagementTabRef?.value?.fetchRoles)
52+
userManagementTabRef.value.fetchRoles();
53+
}
54+
55+
const fetchRoles = () => {
56+
if (rolesManagementTabRef?.value?.fetchRoles)
57+
rolesManagementTabRef.value.fetchRoles();
58+
}
4059
4160
const activeTab = ref(1);
4261
</script>
@@ -46,4 +65,4 @@ const activeTab = ref(1);
4665
padding-top: 2rem;
4766
padding-bottom: 2rem;
4867
}
49-
</style>
68+
</style>

src/AdminUI/src/components/UserManagementTab.vue

+8-4
Original file line numberDiff line numberDiff line change
@@ -240,10 +240,10 @@ const updateUser = async (user) => {
240240
if (user.value) user = user.value;
241241
roleChange(user);
242242
const userDup = Object.assign({}, user);
243-
delete userDup["id"];
244-
delete userDup["rolesText"];
245-
delete userDup["roles"];
246-
delete userDup["__v"];
243+
if (userDup.id) delete userDup.id;
244+
if (userDup.rolesText) delete userDup.rolesText;
245+
if (userDup.roles) delete userDup.roles;
246+
if (userDup.__v) delete userDup.__v;
247247
if ("password" in userDup)
248248
if (userDup.password === "" || userDup.password === null)
249249
delete userDup["password"];
@@ -352,4 +352,8 @@ const createUser = async () => {
352352
})
353353
.catch((err) => { error.value = true; console.warn(err); });
354354
}
355+
356+
defineExpose({ fetchUsers, fetchRoles })
357+
355358
</script>
359+

0 commit comments

Comments
 (0)