diff --git a/frontend/src/api/senderAddresses.js b/frontend/src/api/senderAddresses.js
new file mode 100644
index 000000000..a9920152f
--- /dev/null
+++ b/frontend/src/api/senderAddresses.js
@@ -0,0 +1,18 @@
+import repository from './repository'
+
+const resource = 'senderaddresses'
+
+export default {
+ getAll () {
+ return repository.get(`${resource}/`)
+ },
+ getAllForMailbox (mailboxId) {
+ return repository.get(`${resource}/`, { params: { mailbox: mailboxId } })
+ },
+ create (data) {
+ return repository.post(`${resource}/`, data)
+ },
+ delete (addressId) {
+ return repository.delete(`${resource}/${addressId}/`)
+ }
+}
diff --git a/frontend/src/components/identities/AccountForm.vue b/frontend/src/components/identities/AccountForm.vue
index a08cd36ad..c56e7c477 100644
--- a/frontend/src/components/identities/AccountForm.vue
+++ b/frontend/src/components/identities/AccountForm.vue
@@ -98,7 +98,9 @@
-
+
@@ -183,6 +185,9 @@ export default {
if (this.$refs.resourcesForm !== undefined) {
data.resources = this.$refs.resourcesForm.getPayload()
}
+ if (data.aliases === null) {
+ delete data.aliases
+ }
await accounts.patch(this.editedAccount.pk, data).then(resp => {
bus.$emit('notification', { msg: this.$gettext('Account updated') })
})
diff --git a/frontend/src/components/identities/AccountSenderAddresses.vue b/frontend/src/components/identities/AccountSenderAddresses.vue
new file mode 100644
index 000000000..9875eb4ed
--- /dev/null
+++ b/frontend/src/components/identities/AccountSenderAddresses.vue
@@ -0,0 +1,103 @@
+
+
+
+ Sender addresses
+
+
+
+
+ {{ item.address }}
+
+
+
+ mdi-content-save
+
+
+
+
+
+
+ mdi-delete-outline
+
+
+
+
+ mdi-plus Add sender address
+
+
+
+
+
+
diff --git a/frontend/src/views/identities/Account.vue b/frontend/src/views/identities/Account.vue
index 504d12156..0b0bda935 100644
--- a/frontend/src/views/identities/Account.vue
+++ b/frontend/src/views/identities/Account.vue
@@ -12,10 +12,15 @@
+
@@ -29,6 +34,7 @@