diff --git a/frontend/auth/admin/AdminApp.vue b/frontend/auth/admin/AdminApp.vue index f7067b7..8b1949a 100644 --- a/frontend/auth/admin/AdminApp.vue +++ b/frontend/auth/admin/AdminApp.vue @@ -736,10 +736,7 @@ async function refreshUserDetail() { } } -async function onUserNameSaved() { - await refreshUserDetail() - authStore.showMessage('User renamed', 'success', 1500) -} + async function submitDialog() { if (!dialog.value.type || dialog.value.busy) return @@ -824,7 +821,7 @@ async function submitDialog() { apiJson(`/auth/api/admin/users/${user.uuid}/info`, { method: 'PATCH', body: { display_name: name } }) .then(() => { authStore.showMessage(`User renamed to "${name}".`, 'success', 2500) - onUserNameSaved() + refreshUserDetail() }) .catch(e => { authStore.showMessage(e.message || 'Failed to update user name', 'error') @@ -1003,9 +1000,7 @@ async function submitDialog() { :show-reg-modal="showRegModal" :navigation-disabled="hasActiveModal" @generate-user-registration-link="generateUserRegistrationLink" - @go-overview="goOverview" @open-org="openOrg" - @on-user-name-saved="onUserNameSaved" @refresh-user-detail="refreshUserDetail" @edit-user-name="editUserName" @close-reg-modal="showRegModal = false" diff --git a/frontend/src/admin/AdminUserDetail.vue b/frontend/src/admin/AdminUserDetail.vue index c7ed288..c58ba24 100644 --- a/frontend/src/admin/AdminUserDetail.vue +++ b/frontend/src/admin/AdminUserDetail.vue @@ -18,7 +18,7 @@ const props = defineProps({ navigationDisabled: { type: Boolean, default: false } }) -const emit = defineEmits(['generateUserRegistrationLink', 'goOverview', 'openOrg', 'onUserNameSaved', 'closeRegModal', 'editUserName', 'refreshUserDetail', 'navigateOut', 'deleteUser']) +const emit = defineEmits(['generateUserRegistrationLink', 'openOrg', 'closeRegModal', 'editUserName', 'refreshUserDetail', 'navigateOut', 'deleteUser']) const authStore = useAuthStore() const terminatingSessions = ref({}) @@ -69,11 +69,13 @@ async function handleDelete(credential) { try { const data = await apiJson(`/auth/api/admin/users/${props.selectedUser.uuid}/credentials/${credential.credential}`, { method: 'DELETE' }) if (data.status === 'ok') { - emit('onUserNameSaved') // Reuse to refresh user detail + emit('refreshUserDetail') + authStore.showMessage('Passkey removed', 'success', 2500) } else { - console.error('Failed to delete credential', data) + authStore.showMessage(data.detail || 'Failed to remove passkey', 'error') } } catch (err) { + authStore.showMessage(err.message || 'Failed to remove passkey', 'error') console.error('Delete credential error', err) } } @@ -90,7 +92,7 @@ async function handleTerminateSession(session) { location.reload() return } - emit('refreshUserDetail') // Refresh without showing rename message + emit('refreshUserDetail') authStore.showMessage('Session terminated', 'success', 2500) } else { authStore.showMessage(data.detail || 'Failed to terminate session', 'error') @@ -227,7 +229,6 @@ const adminPictureTitle = computed(() => { :org-display-name="userDetail.org.display_name" :role-name="userDetail.role.display_name" :update-endpoint="`/auth/api/admin/users/${selectedUser.uuid}/info`" - @saved="$emit('onUserNameSaved')" @avatar-click="openPictureDialog" @edit="handleEditName" > @@ -287,7 +288,7 @@ const adminPictureTitle = computed(() => {