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 () => {
-
+