diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue index a9c7bdf..a7b627d 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue @@ -65,6 +65,20 @@ +

Nutzer zu Administrator befördern

+
+ +
+ +
+
@@ -180,6 +194,7 @@ boolStatus: false, boolTable: true, boolMemberTableUpdating: false, + newAdminMail: "", teamColumns: [ { name: 'desc', @@ -205,7 +220,6 @@ page: 1, rowsPerPage: 10 }, - // newAdminMail: "", } }, mounted: function () { @@ -268,6 +282,20 @@ }).onDismiss(() => { }) }, + confirmAddAdmin(newAdmin) { + this.$q.dialog({ + title: 'Administrator hinzufügen', + message: 'Willst du den Nutzer ' + newAdmin.name + ' mit der Email ' + newAdmin.email + ' wirklich zum Administrator befördern?', + persistent: true, + cancel: true, + }).onOk(() => { + console.log('>>>> OK'); + this.addAdmin(newAdmin); + }).onCancel(() => { + console.log('>>>> Cancel') + }).onDismiss(() => { + }) + }, activateInvite() { if (this.inviteActivated) { this.inviteActivated = false; @@ -505,73 +533,73 @@ }); this.updateStatus(); }, - // getUser() { - // const data = { - // "email" : this.newAdminMail - // } - // JSON.stringify(data); - // const token = JSON.parse(localStorage.getItem('userToken')).token; - // this.$axios.get(process.env.USER_API + '/account/email', data, { - // headers: { - // 'Authorization': 'Bearer ' + token, - // } - // }).then((response) => { - // let newAdminAccount = response.data; - // if (response.status === 200) { - // this.addAdmin(JSON.parse(response).data); - // } - // }) - // .catch((error) => { - // let message; - // let header = "Unbekannter Fehler..."; - // if (error.response) { - // console.log(error.response) - // if (error.response.status === 400) { - // message = "Es gibt keinen Nutzer mit dieser Email!"; - // header = "Email überprüfen!"; - // } - // } else if (error.request) { - // console.log(error.request); - // header = "Anfrage fehlgeschlagen!"; - // message = "Die Verbindung zum Server ist gestört. Versuchen Sie es später noch einmal."; - // } - // this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: message, title: header}); - // }); - // }, - // addAdmin(newAdmin) { - // const token = JSON.parse(localStorage.getItem('userToken')).token; - // newAdmin.roles.role = "ADMIN"; - // JSON.stringify(newAdmin); - // this.$axios.patch(process.env.USER_API, '/account', newAdmin, { - // headers: { - // 'Authorization': 'Bearer ' + token, - // } - // }).then((response) => { - // if (response.status === 200) { - // this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { - // message: "Du hast den Nutzer mit der Email " + this.newAdminMail + " als Admin freigeschalten!", - // title: "Nutzerverwaltung", - // color: "blue" - // }); - // } - // }) - // .catch((error) => { - // let message; - // let header = "Unbekannter Fehler..."; - // if (error.response) { - // console.log(error.response) - // if (error.response.status === 400) { - // message = JSON.parse(error).error; - // header = "Probleme mit dem zu bearbeitenden Nutzeraccount!"; - // } - // } else if (error.request) { - // console.log(error.request); - // header = "Anfrage fehlgeschlagen!"; - // message = "Die Verbindung zum Server ist gestört. Versuchen Sie es später noch einmal."; - // } - // this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: message, title: header}); - // }); - // }, + getUser() { + const data = { + "email" : this.newAdminMail + }; + JSON.stringify(data); + const token = JSON.parse(localStorage.getItem('userToken')).token; + this.$axios.get(process.env.USER_API + '/account/email', data, { + headers: { + 'Authorization': 'Bearer ' + token, + } + }).then((response) => { + let newAdminAccount = response.data; + if (response.status === 200) { + this.confirmAddAdmin((JSON.parse(response).data)); + } + }) + .catch((error) => { + let message; + let header = "Unbekannter Fehler..."; + if (error.response) { + console.log(error.response) + if (error.response.status === 400) { + message = "Es gibt keinen Nutzer mit dieser Email!"; + header = "Email überprüfen!"; + } + } else if (error.request) { + console.log(error.request); + header = "Anfrage fehlgeschlagen!"; + message = "Die Verbindung zum Server ist gestört. Versuchen Sie es später noch einmal."; + } + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: message, title: header}); + }); + }, + addAdmin(newAdmin) { + const token = JSON.parse(localStorage.getItem('userToken')).token; + newAdmin.roles.role = "ADMIN"; + JSON.stringify(newAdmin); + this.$axios.patch(process.env.USER_API, '/account', newAdmin, { + headers: { + 'Authorization': 'Bearer ' + token, + } + }).then((response) => { + if (response.status === 200) { + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { + message: "Du hast den Nutzer mit der Email " + this.newAdminMail + " als Admin freigeschalten!", + title: "Nutzerverwaltung", + color: "blue" + }); + } + }) + .catch((error) => { + let message; + let header = "Unbekannter Fehler..."; + if (error.response) { + console.log(error.response) + if (error.response.status === 400) { + message = JSON.parse(error).error; + header = "Probleme mit dem zu bearbeitenden Nutzeraccount!"; + } + } else if (error.request) { + console.log(error.request); + header = "Anfrage fehlgeschlagen!"; + message = "Die Verbindung zum Server ist gestört. Versuchen Sie es später noch einmal."; + } + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: message, title: header}); + }); + }, handleError(error) { let msg; let title;