feat(portal): Apple Mail profile download on user rows + drawer
ci / changes (push) Successful in 3s
ci / tc_booking (push) Has been skipped
ci / tc_operator (push) Has been skipped
ci / tc_website (push) Has been skipped
ci / tc_platform_api (push) Has been skipped
ci / test_platform_api (push) Has been skipped
ci / build_booking (push) Has been skipped
ci / build_operator (push) Has been skipped
ci / build_platform_api (push) Has been skipped
ci / tc_portal (push) Successful in 25s
ci / build_portal (push) Successful in 41s
ci / deploy (push) Successful in 40s
ci / changes (push) Successful in 3s
ci / tc_booking (push) Has been skipped
ci / tc_operator (push) Has been skipped
ci / tc_website (push) Has been skipped
ci / tc_platform_api (push) Has been skipped
ci / test_platform_api (push) Has been skipped
ci / build_booking (push) Has been skipped
ci / build_operator (push) Has been skipped
ci / build_platform_api (push) Has been skipped
ci / tc_portal (push) Successful in 25s
ci / build_portal (push) Successful in 41s
ci / deploy (push) Successful in 40s
The .mobileconfig button only lived on the transient credential dialogs (invite/create/reset results) — nowhere to fetch a profile for an existing mailbox. Row kebab menu gains 'Download Apple Mail profile' (mailbox users only) and the user drawer shows the button next to the mailbox address.
This commit is contained in:
@@ -173,6 +173,7 @@ function bulkExport() {
|
|||||||
function rowAction(u: TenantUserDoc, id: string) {
|
function rowAction(u: TenantUserDoc, id: string) {
|
||||||
if (id === 'open') openUser.value = u
|
if (id === 'open') openUser.value = u
|
||||||
else if (id === 'reset') resetTarget.value = u
|
else if (id === 'reset') resetTarget.value = u
|
||||||
|
else if (id === 'apple-profile' && u.mailboxAddress) downloadAppleProfile(u.mailboxAddress, u.name)
|
||||||
else if (id === 'force') forceLogoutUser(u)
|
else if (id === 'force') forceLogoutUser(u)
|
||||||
else if (id === 'make-owner') makeOwnerTarget.value = u
|
else if (id === 'make-owner') makeOwnerTarget.value = u
|
||||||
else if (id === 'suspend') suspendTarget.value = u
|
else if (id === 'suspend') suspendTarget.value = u
|
||||||
@@ -187,6 +188,9 @@ function rowItems(u: TenantUserDoc) {
|
|||||||
return [
|
return [
|
||||||
{ id: 'open', label: 'Open profile', icon: 'external' as const },
|
{ id: 'open', label: 'Open profile', icon: 'external' as const },
|
||||||
{ id: 'reset', label: 'Send password reset', icon: 'key' as const },
|
{ id: 'reset', label: 'Send password reset', icon: 'key' as const },
|
||||||
|
...(u.mailboxAddress
|
||||||
|
? [{ id: 'apple-profile', label: 'Download Apple Mail profile', icon: 'download' as const }]
|
||||||
|
: []),
|
||||||
{ id: 'force', label: 'Force logout', icon: 'logout' as const },
|
{ id: 'force', label: 'Force logout', icon: 'logout' as const },
|
||||||
{ id: 'sep1', separator: true },
|
{ id: 'sep1', separator: true },
|
||||||
...(canManageOwnership.value && effectiveRole(u) !== 'owner'
|
...(canManageOwnership.value && effectiveRole(u) !== 'owner'
|
||||||
@@ -743,7 +747,13 @@ async function submitCreateMailbox() {
|
|||||||
<div class="kv">
|
<div class="kv">
|
||||||
<span class="kv-k">Mailbox</span>
|
<span class="kv-k">Mailbox</span>
|
||||||
<template v-if="openUser.mailboxAddress">
|
<template v-if="openUser.mailboxAddress">
|
||||||
<Mono class="kv-v">{{ openUser.mailboxAddress }}</Mono>
|
<div class="kv-inline">
|
||||||
|
<Mono class="kv-v">{{ openUser.mailboxAddress }}</Mono>
|
||||||
|
<UiButton size="sm" variant="secondary" @click="downloadAppleProfile(openUser.mailboxAddress, openUser.name)">
|
||||||
|
<template #leading><UiIcon name="download" :size="13" /></template>
|
||||||
|
Apple Mail profile
|
||||||
|
</UiButton>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div v-else class="kv-inline">
|
<div v-else class="kv-inline">
|
||||||
<span class="kv-v muted-v">No mailbox — sign-in only</span>
|
<span class="kv-v muted-v">No mailbox — sign-in only</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user