From 1cda5b31f3e0c14c67d08e1882f3903b776079fa Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Sun, 18 Oct 2020 12:22:33 +0200
Subject: [PATCH] Only show Compose email button if user is allowed to do that

---
 .../apimail/assets/vue/components/MessagesTable.vue  | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/apimail/static/apimail/assets/vue/components/MessagesTable.vue b/apimail/static/apimail/assets/vue/components/MessagesTable.vue
index 9621b6693..e97dd857f 100644
--- a/apimail/static/apimail/assets/vue/components/MessagesTable.vue
+++ b/apimail/static/apimail/assets/vue/components/MessagesTable.vue
@@ -1,7 +1,7 @@
 <template>
 <div>
 
-  <div v-if="accesses" class="m-2 mb-4">
+  <div v-if="currentSendingAccesses && currentSendingAccesses.length > 0" class="m-2 mb-4">
     <b-button
       v-b-modal.modal-newdraft
       variant="primary"
@@ -56,7 +56,7 @@
   </b-modal>
 
 
-  <div v-if="draftMessages.length > 0" class="m-2 mb-4">
+  <div v-if="draftMessages && draftMessages.length > 0" class="m-2 mb-4">
     <h2>Message drafts to complete</h2>
     <table class="table">
       <tr>
@@ -370,6 +370,7 @@ export default {
     data() {
 	return {
 	    accesses: null,
+	    currentSendingAccesses: null,
 	    accountSelected: null,
 	    draftMessages: [],
 	    draftMessageSelected: null,
@@ -418,6 +419,12 @@ export default {
 		.then(data => this.accesses = data.results)
 		.catch(error => console.error(error))
 	},
+	fetchCurrentSendingAccounts () {
+	    fetch('/mail/api/user_account_accesses?current=true&cansend=true')
+		.then(stream => stream.json())
+		.then(data => this.currentSendingAccesses = data.results)
+		.catch(error => console.error(error))
+	},
 	fetchTags () {
 	    fetch('/mail/api/user_tags')
 		.then(stream => stream.json())
@@ -513,6 +520,7 @@ export default {
     },
     mounted() {
 	this.fetchAccounts()
+	this.fetchCurrentSendingAccounts()
 	this.fetchTags()
 	this.fetchDrafts()
 	this.$root.$on('bv::modal::hide', (bvEvent, modalId) => {
-- 
GitLab