diff --git a/frontend/src/admin/AdminApp.vue b/frontend/src/admin/AdminApp.vue index c5fb0a5..67119e2 100644 --- a/frontend/src/admin/AdminApp.vue +++ b/frontend/src/admin/AdminApp.vue @@ -364,6 +364,32 @@ async function toggleRolePermission(role, permId, checked) { function openDialog(type, data) { dialog.value = { type, data, busy: false, error: '' } } function closeDialog() { dialog.value = { type: null, data: null, busy: false, error: '' } } +// Admin user rename +const editingUserName = ref(false) +const editUserNameValue = ref('') +const editUserNameValid = computed(()=> editUserNameValue.value.trim().length > 0 && editUserNameValue.value.trim().length <= 64) +function beginEditUserName() { + if (!selectedUser.value) return + editingUserName.value = true + editUserNameValue.value = userDetail.value?.display_name || selectedUser.value.display_name || '' +} +function cancelEditUserName() { editingUserName.value = false } +async function submitEditUserName() { + if (!editingUserName.value || !editUserNameValid.value) return + try { + const res = await fetch(`/auth/admin/users/${selectedUser.value.uuid}/display-name`, { method: 'PUT', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ display_name: editUserNameValue.value.trim() }) }) + const data = await res.json(); if (!res.ok || data.detail) throw new Error(data.detail || 'Rename failed') + editingUserName.value = false + await loadOrgs() + const r = await fetch(`/auth/admin/users/${selectedUser.value.uuid}`) + const jd = await r.json(); if (!r.ok || jd.detail) throw new Error(jd.detail || 'Reload failed') + userDetail.value = jd + authStore.showMessage('User renamed', 'success', 1500) + } catch (e) { + authStore.showMessage(e.message || 'Rename failed') + } +} + async function submitDialog() { if (!dialog.value.type || dialog.value.busy) return dialog.value.busy = true; dialog.value.error = '' @@ -458,7 +484,14 @@ async function submitDialog() {
-

{{ userDetail?.display_name || selectedUser.display_name }}

+

+ {{ userDetail?.display_name || selectedUser.display_name }} + + + + + +

Organization: {{ userDetail.org.display_name }}

Role: {{ userDetail.role }}

diff --git a/frontend/src/components/ProfileView.vue b/frontend/src/components/ProfileView.vue index a5b9f70..bde0526 100644 --- a/frontend/src/components/ProfileView.vue +++ b/frontend/src/components/ProfileView.vue @@ -3,7 +3,15 @@

👋 Welcome! Admin