From 89b8800d24cc175f480630f68c34c38769c7edc2 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Jun 2019 12:39:20 +0200 Subject: [PATCH 01/12] reworked team profile page --- .../frontend/src/pages/Profile.vue | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) 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 8ca50e1..73216f7 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue @@ -80,7 +80,7 @@
-

{{teamName}}

+

{{teamName}}

Unser Rang: {{teamRanking}}

Unser Status: {{currentTeamStatus}} @@ -109,7 +109,7 @@ type="submit"/>

-
+

Teammitglieder


-
- -
-
+
@@ -138,7 +130,7 @@ unelevated @click="sendTeamInvite()" :disabled="!teamInviteChecked" - color="positive" + color="primary" type="submit"/>
From f523f2e2d32bfafa3a4bc7e56aefd353c31f77dc Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Jun 2019 12:52:31 +0200 Subject: [PATCH 02/12] reworked profilepage again --- .../frontend/src/pages/Profile.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 73216f7..dc1fc1b 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue @@ -80,11 +80,12 @@
-

{{teamName}}

+

{{teamName}}

Unser Rang: {{teamRanking}}

Unser Status: {{currentTeamStatus}}

-
+

Teammitglieder


+

Nutzer einladen

Date: Thu, 6 Jun 2019 13:07:45 +0200 Subject: [PATCH 03/12] =?UTF-8?q?startseite=20=C3=BCberarbeitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frontend/src/pages/Index.vue | 28 +++++++------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Index.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Index.vue index 554b946..4e63fc8 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Index.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Index.vue @@ -7,21 +7,14 @@ />
GeoCaching
-
Willkommen
- - - - GeoCaching ist eine spielerische Führung, eine Schnitzeljagd, über die Bundesgartenschau. - Es gibt mehrere Routen (Caches), von denen man wählen kann. Auf jedem Cache gibt es mehrere Stationen, bei denen Rätsel und Aufgaben gelöst werden müssen, um die nächste zu finden. - Eine Station ist eine QR-Code, bei dessen einscannen das nächste Rätsel freigeschaltet wird. - Findet ein Cacher alle Stationen eines Caches erhält er eine kleine Belohnung und sammelt Punkte für eine Rangliste. - - - +
Willkommen, GeoCaching ist eine spielerische Führung, eine Schnitzeljagd, über die + Bundesgartenschau. + Es gibt mehrere Routen (Caches), die man durchführen kann. Jeder Cache besteht aus mehreren Stationen, bei + denen Rätsel und Aufgaben gelöst werden müssen, um die jeweils nächste Station zu finden. + Eine Station wird durch einen QR-Code repräsentiert, den man einscannen muss um das Rätsel angezeigt zu bekommen. + Findet der Cacher alle Stationen eines Caches in der richtigen Reihenfolge erhält er eine kleine Belohnung und sammelt Punkte für eine + Rangliste. +
@@ -40,9 +33,8 @@ From e65d32e106f556cdf0a451f3a7883e46b3a2a469 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 6 Jun 2019 13:11:15 +0200 Subject: [PATCH 04/12] Admin can now reset Rankingpoints of single user --- .../frontend/src/pages/ranking.vue | 25 ++++++++- .../bugageocaching/controller/Controller.java | 56 +++++++++++++++++++ .../repositories/UserRepository.java | 1 + 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue index 211979f..63857cd 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue @@ -44,6 +44,7 @@ type="text" label="Username eingeben" unelevated color="negative" + v-model="deleteUser" >
@@ -53,6 +54,7 @@ label="Punkte des Nutzer zurücksetzen" color="negative" class="full-width" + @click="resetPoints()" />
@@ -102,7 +104,8 @@ tab: 'solo', rankinglist: [], teamRankinglist: [], - username: null + username: null, + deleteUser: null } }, created: function () { @@ -183,7 +186,25 @@ // lastSum = ranking.rankingPointsSum; // } }, - resetPoints(username){ + resetPoints(){ + if(this.deleteUser != null){ + let username = this.deleteUser; + let token = JSON.parse(localStorage.getItem('userToken')).token; + + this.$axios.put('/api/resetSingleUser',null, {params: {token, username}}) + .then((response) => { + console.log("Rankinglist: "); + console.log(response.data); + this.fetchRankinglist(); + }).catch((error) => { + }) + } else { + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { + message: "Zum zurücksetzen der Punkte eines Nutzers gib bitte einen Usernamen ein", + title: "Fehlender Username", + color: "negative" + }); + } }, } diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index f752dc4..bbf0e1b 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1284,6 +1284,62 @@ public class Controller { } + @ApiOperation(value = "Resets the points of a single User ") + @ApiResponses(value = { + @ApiResponse(code = 404, message = "Database error"), + @ApiResponse(code = 401, message = "JWT Token expired"), + @ApiResponse(code = 400, message = "Something went wrong at verification") + }) + @CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose + @RequestMapping(value = "/api/resetSingleUser", method = RequestMethod.PUT, produces = "application/json") + public ResponseEntity resetSingleUser(@RequestParam String token, @RequestParam String username) { + logger.debug("API CALL: /api/resetSingleUser"); + // verify user + ResponseEntity verifyToken = VerificationUtil.verifyToken(token); + + if (verifyToken.getStatusCodeValue() != 200) { + return verifyToken; + } + + //get User + Claims claims = (Claims) verifyToken.getBody(); + + ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); + + if (getUser.getStatusCodeValue() != 200) { + return getUser; + } + + User user = (User) getUser.getBody(); + + logger.debug("/api/resetRankingList: " + "User verificated: " + user.getEmail()); + //---------------------- + boolean isAdmin = false; + for (Role role : user.getRoles()) { + if (role.getId() == 7) { + isAdmin = true; + } + } + + if (isAdmin) { + + User deleteUser = userRepository.findByUsername(username); + + User_Info user_info = user_infoRepository.findUser_InfoByUser(deleteUser); + user_info.setRankingPointsSum(0); + user_infoRepository.save(user_info); + + for (Bearbeitet bearbeitet : bearbeitetRepository.findByUser(deleteUser)) { + if (bearbeitet.getCacheAccesDefinition().getId() == 1) { + bearbeitetRepository.delete(bearbeitet); + } + } + return ResponseEntity.status(200).body(HttpStatus.OK); + } else { + return ResponseEntity.status(400).body("Der Benutzer ist kein Admin und kann deshalb die Rangliste nicht zurücksetzen."); + } + } + @ApiOperation(value = "Test method (Changes its purpose often)") @ApiResponses(value = { @ApiResponse(code = 404, message = "Database error"), diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 25ec2f9..9c920fe 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -8,6 +8,7 @@ import java.util.List; public interface UserRepository extends CrudRepository { User findByEmail(String email); + User findByUsername(String username); // @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" + // "FROM user u,\n" + From d6164e663949da222f0d49d09e8b495892c8bf32 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Jun 2019 13:55:19 +0200 Subject: [PATCH 05/12] farbanpassung --- .../frontend/src/pages/Profile.vue | 1 + 1 file changed, 1 insertion(+) 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 dc1fc1b..b909293 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue @@ -32,6 +32,7 @@ Date: Thu, 6 Jun 2019 14:08:16 +0200 Subject: [PATCH 06/12] Cahnged Rankinglistidentifier to Email --- .../frontend/src/pages/ranking.vue | 8 +++++--- .../hhn/labsw/bugageocaching/controller/Controller.java | 4 ++-- .../labsw/bugageocaching/repositories/UserRepository.java | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue index 63857cd..f9d9ca4 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue @@ -24,10 +24,10 @@ - {{user.rank}}. {{user.username}} - {{user.rank}}. {{user.username}} @@ -105,7 +105,8 @@ rankinglist: [], teamRankinglist: [], username: null, - deleteUser: null + deleteUser: null, + email: null, } }, created: function () { @@ -114,6 +115,7 @@ this.fetchRankinglist(); this.fetchTeamRankinglist(); this.username = JSON.parse(localStorage.getItem('userToken')).name; + this.email = JSON.parse(localStorage.getItem('userMail')); }, computed: { hasAdminState() { diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index bbf0e1b..2ea87d8 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -425,7 +425,7 @@ public class Controller { for (RankingListHelper rankingListHelper: sendBackUsers) { logger.debug("RankingList Helper " + rankingListHelper.getUsername()); logger.debug("User: " + user.getUsername()); - if(rankingListHelper.getUsername().equals(user.getUsername())){ + if(rankingListHelper.getUsername().equals(user.getEmail())){ userAlreadyInRankingList = true; break; } @@ -435,7 +435,7 @@ public class Controller { ResponseEntity singlePlace = getRankingPlace(user.getEmail()); if (singlePlace.getStatusCodeValue() == 200) { - RankingListHelper rankingListHelper = new RankingListHelper(user.getUsername(), (Integer) user_infoRepository.findUser_InfoByUser(user).getRankingPointsSum(), (Integer) getRankingPlace(user.getEmail()).getBody()); + RankingListHelper rankingListHelper = new RankingListHelper(user.getEmail(), (Integer) user_infoRepository.findUser_InfoByUser(user).getRankingPointsSum(), (Integer) getRankingPlace(user.getEmail()).getBody()); logger.debug(String.valueOf((Integer) singlePlace.getBody())); sendBackUsers.add(rankingListHelper); } diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 9c920fe..a4a04a0 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -20,7 +20,7 @@ public interface UserRepository extends CrudRepository { // "LIMIT 10;", nativeQuery = true) // List getRankingList(); - @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte, email Email\n" + + @Query(value = "SELECT DISTINCT u.id AS ID, u.email AS Name, ui.ranking_points_sum AS Ranglistenpunkte, email Email\n" + "FROM user u,\n" + " user_info ui,\n" + " user_roles ur\n" + From e8809630eff7fcb0c303d706f77d322beb600cc6 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 6 Jun 2019 14:16:46 +0200 Subject: [PATCH 07/12] Email validation --- .../frontend/src/pages/Register.vue | 2 +- .../frontend/src/pages/ranking.vue | 46 +++++++++++++++---- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue index 430436f..14a26d5 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue @@ -98,7 +98,7 @@ methods: { validateEmail(email) { //var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - let re = new RegExp('^[a-zA-Z0-9.!#$%&\'*+/=?^_`{|}~-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$'); + let re = new RegExp('(?:[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])'); return re.test(String(email).toLowerCase()); }, register: function () { diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue index f9d9ca4..66bffc6 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue @@ -42,7 +42,7 @@
@@ -192,14 +192,38 @@ if(this.deleteUser != null){ let username = this.deleteUser; let token = JSON.parse(localStorage.getItem('userToken')).token; + if(this.validateEmail(this.email)) { - this.$axios.put('/api/resetSingleUser',null, {params: {token, username}}) - .then((response) => { - console.log("Rankinglist: "); - console.log(response.data); - this.fetchRankinglist(); - }).catch((error) => { - }) + this.$axios.put('/api/resetSingleUser', null, {params: {token, username}}) + .then((response) => { + console.log("Rankinglist: "); + console.log(response.data); + this.fetchRankinglist(); + }).catch((error) => { + let msg; + let title; + if (error.response) { + title = "Bitte Eingaben überprüfen!"; + msg = error.response.data; + } else if (error.request) { + title = "Verbindungsfehler!"; + msg = "Es konnte keine Verbindung zum Server aufgebaut werden. Versuchen Sie es später noch einmal!" + console.log(error.request); + } else { + title = "Error"; + msg = error.message; + console.log('Error', error.message); + } + console.log(error.config); + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: msg, title: title,}); + }) + }else{ + this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { + message: "Bitte geben Sie eine gültige Email ein", + title: "Ungültige Email", + color: "negative" + }); + } } else { this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { message: "Zum zurücksetzen der Punkte eines Nutzers gib bitte einen Usernamen ein", @@ -209,6 +233,12 @@ } }, + validateEmail(email) { + //var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + let re = new RegExp('(?:[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])'); + return re.test(String(email).toLowerCase()); + }, + } } From 0deb12c6d0fa76ff9ba220084b349c60da3524c8 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 6 Jun 2019 14:17:10 +0200 Subject: [PATCH 08/12] Email validation backend --- .../java/hhn/labsw/bugageocaching/controller/Controller.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 2ea87d8..881ddfc 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1323,7 +1323,7 @@ public class Controller { if (isAdmin) { - User deleteUser = userRepository.findByUsername(username); + User deleteUser = userRepository.findByEmail(username); User_Info user_info = user_infoRepository.findUser_InfoByUser(deleteUser); user_info.setRankingPointsSum(0); From 37d33ced8000ed02fb6f4bcbd833e21a07c93585 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Thu, 6 Jun 2019 14:28:49 +0200 Subject: [PATCH 09/12] Fixed RegEx email --- .../frontend/src/pages/Register.vue | 2 +- .../frontend/src/pages/ranking.vue | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue index 14a26d5..c627de1 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Register.vue @@ -98,7 +98,7 @@ methods: { validateEmail(email) { //var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - let re = new RegExp('(?:[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])'); + let re = new RegExp('/^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/'); return re.test(String(email).toLowerCase()); }, register: function () { diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue index 66bffc6..e933cde 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue @@ -193,6 +193,7 @@ let username = this.deleteUser; let token = JSON.parse(localStorage.getItem('userToken')).token; if(this.validateEmail(this.email)) { + console.log(this.validateEmail(this.email)); this.$axios.put('/api/resetSingleUser', null, {params: {token, username}}) .then((response) => { @@ -235,7 +236,7 @@ }, validateEmail(email) { //var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - let re = new RegExp('(?:[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])'); + let re = new RegExp('/^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/'); return re.test(String(email).toLowerCase()); }, From 377a936d4461df5d708bc57ccad70918390547f5 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Jun 2019 14:44:17 +0200 Subject: [PATCH 10/12] korrekte fehlermeldung wird ausgegeben, falls eine falsche email eingegeebn wird --- .../frontend/src/pages/Profile.vue | 12 ------------ .../frontend/src/pages/ranking.vue | 16 ++++++++-------- 2 files changed, 8 insertions(+), 20 deletions(-) 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 b909293..a9c7bdf 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/Profile.vue @@ -65,18 +65,6 @@ - - - - - - - - - - - -
diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue index e933cde..113ee01 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue @@ -25,10 +25,10 @@ {{user.rank}}. {{user.username}} + style="text-decoration: none">{{user.rank}}. {{user.username}} {{user.rank}}. {{user.username}} + style="text-decoration: none">{{user.rank}}. {{user.username}} @@ -45,6 +45,7 @@ label="Email eingeben" unelevated color="negative" v-model="deleteUser" + :rules="[val=>validateEmail(val)||'Bitte Email verwenden']" >
@@ -188,11 +189,11 @@ // lastSum = ranking.rankingPointsSum; // } }, - resetPoints(){ - if(this.deleteUser != null){ + resetPoints() { + if (this.deleteUser != null) { let username = this.deleteUser; let token = JSON.parse(localStorage.getItem('userToken')).token; - if(this.validateEmail(this.email)) { + if (this.validateEmail(this.email)) { console.log(this.validateEmail(this.email)); this.$axios.put('/api/resetSingleUser', null, {params: {token, username}}) @@ -218,7 +219,7 @@ console.log(error.config); this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {message: msg, title: title,}); }) - }else{ + } else { this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { message: "Bitte geben Sie eine gültige Email ein", title: "Ungültige Email", @@ -235,8 +236,7 @@ }, validateEmail(email) { - //var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - let re = new RegExp('/^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/'); + let re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); }, From b21b70ae3d5da44d5b11a4b04b77322986df63c7 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Jun 2019 14:44:52 +0200 Subject: [PATCH 11/12] ... --- .../java/hhn/labsw/bugageocaching/controller/Controller.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 881ddfc..13d1bb9 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1325,6 +1325,11 @@ public class Controller { User deleteUser = userRepository.findByEmail(username); + + if(deleteUser == null) { + return ResponseEntity.status(400).body("Es wurde kein User mit dieser Email gefunden."); + } + User_Info user_info = user_infoRepository.findUser_InfoByUser(deleteUser); user_info.setRankingPointsSum(0); user_infoRepository.save(user_info); From 12a046223d284236ea67c4443e6f81c81c3f30cb Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 6 Jun 2019 14:49:04 +0200 Subject: [PATCH 12/12] =?UTF-8?q?farben=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frontend/src/pages/ranking.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue index 113ee01..99b8115 100644 --- a/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue +++ b/labswp_2019_sose_geocaching_frontend/frontend/src/pages/ranking.vue @@ -43,7 +43,7 @@