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;