fix: let owners and admins change a user's role from the edit-user modal
This commit is contained in:
@@ -112,6 +112,10 @@ const editName = ref('');
|
||||
const editMobile = ref('');
|
||||
const editPassword = ref('');
|
||||
const editRoleLabel = ref('');
|
||||
const editRoleId = ref('');
|
||||
const editInitialRoleId = ref('');
|
||||
/** مدیر نمیتواند نقش مالک را عوض کند؛ آن موقع فقط برچسب نقش نشان داده میشود */
|
||||
const editRoleLocked = ref(false);
|
||||
|
||||
const roleFormOpen = ref(false);
|
||||
const roleFormSaving = ref(false);
|
||||
@@ -448,6 +452,9 @@ function openEditUser(user: OrgUserDto) {
|
||||
editMobile.value = user.mobile ?? '';
|
||||
editPassword.value = '';
|
||||
editRoleLabel.value = user.orgRoleName || '—';
|
||||
editRoleId.value = user.orgRoleId ?? '';
|
||||
editInitialRoleId.value = user.orgRoleId ?? '';
|
||||
editRoleLocked.value = user.role === 'owner' && auth.user?.role !== 'owner';
|
||||
editOpen.value = true;
|
||||
error.value = '';
|
||||
ok.value = '';
|
||||
@@ -472,6 +479,9 @@ async function submitEditUser() {
|
||||
...(editPassword.value ? { password: editPassword.value } : {}),
|
||||
};
|
||||
await api.patch(`/users/${editUserId.value}`, payload);
|
||||
if (!editRoleLocked.value && editRoleId.value && editRoleId.value !== editInitialRoleId.value) {
|
||||
await api.patch(`/users/${editUserId.value}/role`, { orgRoleId: editRoleId.value });
|
||||
}
|
||||
editOpen.value = false;
|
||||
ok.value = 'مشخصات کاربر ذخیره شد.';
|
||||
await load();
|
||||
@@ -1210,7 +1220,15 @@ onUnmounted(() => {
|
||||
placeholder="خالی بگذارید اگر تغییر نمیدهید"
|
||||
/>
|
||||
</label>
|
||||
<p class="hint">نقش فعلی: {{ editRoleLabel }} — برای تغییر نقش از بخش نقشها استفاده کنید.</p>
|
||||
<label v-if="!editRoleLocked">
|
||||
نقش
|
||||
<select v-model="editRoleId">
|
||||
<option v-for="role in inviteableRoles" :key="role.id" :value="role.id">
|
||||
{{ roleTreeLabel(role) }}
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<p v-else class="hint">نقش فعلی: {{ editRoleLabel }} — نقش مالک را فقط مالک میتواند تغییر دهد.</p>
|
||||
</form>
|
||||
<template #footer>
|
||||
<button type="button" class="btn ghost" @click="editOpen = false">انصراف</button>
|
||||
|
||||
Reference in New Issue
Block a user