diff --git a/dashboard/src/components/MailboxDialog.vue b/dashboard/src/components/MailboxDialog.vue index ab3ac9ce8..c9b8a0acd 100644 --- a/dashboard/src/components/MailboxDialog.vue +++ b/dashboard/src/components/MailboxDialog.vue @@ -6,7 +6,7 @@ import { prettyDecimalSize } from '@cloudron/pankow/utils'; import MailboxesModel from '../models/MailboxesModel.js'; const emit = defineEmits([ 'success' ]); -const props = defineProps([ 'users', 'groups', 'domains' ]); +const props = defineProps([ 'apps', 'users', 'groups', 'domains' ]); const mailboxesModel = MailboxesModel.create(); @@ -91,11 +91,11 @@ defineExpose({ enablePop3.value = m ? m.enablePop3 : false; storageQuotaEnabled.value = m && m.storageQuota ? true : false; storageQuota.value = m ? m.storageQuota : 5*1000*1000*1000; - usersAndGroups.value = props.users.concat(props.groups); + usersAndGroups.value = props.users.concat(props.groups).concat(props.apps); // unify on .name for multiselect usersAndGroups.value.forEach(u => { - u.name = u.name || u.username; + u.name = u.name || u.username || u.label || u.fqdn; }); dialog.value.open(); diff --git a/dashboard/src/views/EmailMailboxesView.vue b/dashboard/src/views/EmailMailboxesView.vue index 0093acb38..2d35c1221 100644 --- a/dashboard/src/views/EmailMailboxesView.vue +++ b/dashboard/src/views/EmailMailboxesView.vue @@ -10,12 +10,14 @@ import { prettyDecimalSize } from '@cloudron/pankow/utils'; import { eachLimit } from 'async'; import Section from '../components/Section.vue'; import MailboxDialog from '../components/MailboxDialog.vue'; +import AppsModel from '../models/AppsModel.js'; import DomainsModel from '../models/DomainsModel.js'; import MailModel from '../models/MailModel.js'; import GroupsModel from '../models/GroupsModel.js'; import UsersModel from '../models/UsersModel.js'; import MailboxesModel from '../models/MailboxesModel.js'; +const appsModel = AppsModel.create(); const domainsModel = DomainsModel.create(); const mailModel = MailModel.create(); const groupsModel = GroupsModel.create(); @@ -72,6 +74,7 @@ const busy = ref(true); const mailboxes = ref([]); const mailboxesUsage = ref(0); const domains = ref([]); +const apps = ref([]); const users = ref([]); const groups = ref([]); const searchFilter = ref(''); @@ -182,17 +185,18 @@ onMounted(async () => { let [error, result] = await domainsModel.list(); if (error) return console.error(error); - domains.value = result; + [error, result] = await appsModel.list(); + if (error) return console.error(error); + apps.value = result.filter(a => !!a.manifest?.addons?.recvmail); + [error, result] = await usersModel.list(); if (error) return console.error(error); - users.value = result; [error, result] = await groupsModel.list(); if (error) return console.error(error); - groups.value = result; await refresh(); @@ -223,7 +227,7 @@ onMounted(async () => { - +