Feat: add guest permission setting

This commit is contained in:
zijiren233 2024-05-31 20:16:03 +08:00
parent 0a7a774354
commit b327c075ec
2 changed files with 32 additions and 0 deletions

View File

@ -45,6 +45,7 @@ const getRoomSettings = async () => {
});
if (!state.value) return;
userDefaultPermissions.value = parsePermissions(state.value.user_default_permissions, "member");
guestPermissions.value = parsePermissions(state.value.guest_permissions, "member");
for (const setting in state.value) {
if (settings.value.has(setting)) {
settings.value.set(setting, {
@ -148,6 +149,11 @@ const computedUserDefaultPermissions = computed(() =>
userDefaultPermissions.value.reduce((total, permission) => total | permission, 0)
);
const guestPermissions = ref<number[]>([]);
const computedGuestPermissions = computed(() =>
guestPermissions.value.reduce((total, permission) => total | permission, 0)
);
defineExpose({
openDrawer
});
@ -213,6 +219,31 @@ defineExpose({
>
</div>
</el-form-item>
<el-form-item label="访客权限">
<div class="flex">
<el-select
v-model="guestPermissions"
multiple
collapse-tags
collapse-tags-tooltip
:disabled="!isAdmin && !can(RoomAdminPermission.PermissionSetRoomSettings)"
>
<el-option
v-for="(item, i) in roomMemberPermissionKeys"
:key="i"
:label="
roomMemberPermissionKeysTranslate[item.value as unknown as RoomMemberPermission]
"
:value="item.value"
/>
</el-select>
<el-button
v-if="isAdmin && can(RoomAdminPermission.PermissionSetRoomSettings)"
@click="updateSet('guest_permissions', computedGuestPermissions)"
>更新</el-button
>
</div>
</el-form-item>
<el-form-item label="房间密码">
<el-input v-model.trim.lazy="password" show-password>
<template #append v-if="can(RoomAdminPermission.PermissionSetRoomPassword)">

View File

@ -162,6 +162,7 @@ export const roomSettingsApi = useDefineApi<
disable_join_new_user: boolean;
join_need_review: boolean;
user_default_permissions: number;
guest_permissions: number;
can_get_movie_list: boolean;
can_add_movie: boolean;
can_delete_movie: boolean;