Commit 5901a9725fa75966815e45d72d8211a2474db8b8
1 parent
3e533eef
feature: Standard-Rechteverwaltung begonnen (WIP)
Showing
3 changed files
with
180 additions
and
31 deletions
src/main/java/net/ziemers/swxercise/lg/user/enums/RightState.java
0 → 100644
| 1 | +package net.ziemers.swxercise.lg.user.enums; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * Stellt grundsätzliche Rechte zur Verfügung, die so mit hoher Wahrscheinlichkeit | ||
| 5 | + * in vielen Anwendungen verwendet werden möchten. | ||
| 6 | + */ | ||
| 7 | +public enum RightState { | ||
| 8 | + | ||
| 9 | + NOT_LOGGED_IN(Constants.NOT_LOGGED_IN), | ||
| 10 | + LOGGED_IN(Constants.LOGGED_IN), | ||
| 11 | + ADMIN(Constants.ADMIN), | ||
| 12 | + SUPERADMIN(Constants.SUPERADMIN), | ||
| 13 | + ; | ||
| 14 | + | ||
| 15 | + private String name; | ||
| 16 | + | ||
| 17 | + RightState(final String name) { | ||
| 18 | + this.name = name; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public String getName() { | ||
| 22 | + return name; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + private void setName(String name) { | ||
| 26 | + this.name = name; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + /* | ||
| 30 | + * Diese Klasse wird verwendet, damit wir innerhalb von Annotationen auf die Namen zugreifen können. | ||
| 31 | + */ | ||
| 32 | + public static class Constants { | ||
| 33 | + public static final String NOT_LOGGED_IN = "NOT_LOGGED_IN"; | ||
| 34 | + public static final String LOGGED_IN = "LOGGED_IN"; | ||
| 35 | + public static final String ADMIN = "ADMIN"; | ||
| 36 | + public static final String SUPERADMIN = "SUPERADMIN"; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | +} |
src/main/java/net/ziemers/swxercise/lg/user/service/UserService.java
| @@ -10,6 +10,7 @@ import net.ziemers.swxercise.db.dao.user.UserDao; | @@ -10,6 +10,7 @@ import net.ziemers.swxercise.db.dao.user.UserDao; | ||
| 10 | import net.ziemers.swxercise.lg.model.user.Profile; | 10 | import net.ziemers.swxercise.lg.model.user.Profile; |
| 11 | import net.ziemers.swxercise.lg.model.user.User; | 11 | import net.ziemers.swxercise.lg.model.user.User; |
| 12 | import net.ziemers.swxercise.lg.user.dto.UserDto; | 12 | import net.ziemers.swxercise.lg.user.dto.UserDto; |
| 13 | +import net.ziemers.swxercise.lg.user.enums.RightState; | ||
| 13 | 14 | ||
| 14 | /** | 15 | /** |
| 15 | * Diese Klasse stellt alle Dienste im Kontext einer Benutzerverwaltung zur Verfügung. | 16 | * Diese Klasse stellt alle Dienste im Kontext einer Benutzerverwaltung zur Verfügung. |
| @@ -54,7 +55,21 @@ public class UserService { | @@ -54,7 +55,21 @@ public class UserService { | ||
| 54 | } | 55 | } |
| 55 | 56 | ||
| 56 | /** | 57 | /** |
| 58 | + * Findet den zurzeit angemeldeten Benutzer. | ||
| 59 | + * | ||
| 60 | + * @return den gesuchten Benutzer, oder <code>null</code>, falls ein solcher nicht existiert. | ||
| 61 | + */ | ||
| 62 | + public User findUser() { | ||
| 63 | + final User user = sessionContext.getUser(); | ||
| 64 | + if (user != null) { | ||
| 65 | + return dao.findById(user.getId()); | ||
| 66 | + } | ||
| 67 | + return null; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + /** | ||
| 57 | * Findet alle existierenden Benutzer. | 71 | * Findet alle existierenden Benutzer. |
| 72 | + * | ||
| 58 | * @return alle Benutzer, oder eine leere Collection, falls keine existieren. | 73 | * @return alle Benutzer, oder eine leere Collection, falls keine existieren. |
| 59 | */ | 74 | */ |
| 60 | public Collection<User> findAllUsers() { | 75 | public Collection<User> findAllUsers() { |
| @@ -64,16 +79,16 @@ public class UserService { | @@ -64,16 +79,16 @@ public class UserService { | ||
| 64 | /** | 79 | /** |
| 65 | * Erstellt einen neuen Benutzer, sofern noch keiner mit dem selben Benutzernamen existiert. | 80 | * Erstellt einen neuen Benutzer, sofern noch keiner mit dem selben Benutzernamen existiert. |
| 66 | * | 81 | * |
| 67 | - * @param userDto das {@link UserDto} enthält die Eigenschaften des zu erstellenden Benutzers | 82 | + * @param dto das {@link UserDto} enthält die Eigenschaften des zu erstellenden Benutzers |
| 68 | * @return die Id des neuen Benutzers, wenn die Erstellung erfolgreich war. | 83 | * @return die Id des neuen Benutzers, wenn die Erstellung erfolgreich war. |
| 69 | */ | 84 | */ |
| 70 | - public Long createUser(final UserDto userDto) { | ||
| 71 | - User user = dao.findByUsername(userDto.getUsername()); | 85 | + public Long createUser(final UserDto dto) { |
| 86 | + User user = dao.findByUsername(dto.getUsername()); | ||
| 72 | if (user == null) { | 87 | if (user == null) { |
| 73 | - final Profile profile = new Profile(userDto.getUsername(), userDto.getPassword()); | 88 | + final Profile profile = new Profile(dto.getUsername(), dto.getPassword()); |
| 74 | 89 | ||
| 75 | // wir füllen das User-Objekt mit Method Chaining | 90 | // wir füllen das User-Objekt mit Method Chaining |
| 76 | - user = new User(userDto.getFirstname(), userDto.getLastname()) | 91 | + user = new User(dto.getFirstname(), dto.getLastname()) |
| 77 | .withProfile(profile); | 92 | .withProfile(profile); |
| 78 | 93 | ||
| 79 | return dao.save(user); | 94 | return dao.save(user); |
| @@ -82,6 +97,38 @@ public class UserService { | @@ -82,6 +97,38 @@ public class UserService { | ||
| 82 | } | 97 | } |
| 83 | 98 | ||
| 84 | /** | 99 | /** |
| 100 | + * Aktualisiert den Benutzer mit der übergebenen Id. | ||
| 101 | + * | ||
| 102 | + * @param id die Id des zu aktualisierenden Benutzers | ||
| 103 | + * @param dto das {@link UserDto} enthält die Eigenschaften des zu aktualisierenden Benutzers | ||
| 104 | + * @return <code>true</code>, wenn das Aktualisieren des Benutzers erfolgreich war. | ||
| 105 | + */ | ||
| 106 | + public boolean updateUser(final Long id, final UserDto dto) { | ||
| 107 | + final User user = dao.findById(id); | ||
| 108 | + if (user != null) { | ||
| 109 | + // TODO noch zu implementieren | ||
| 110 | + return false; | ||
| 111 | + } | ||
| 112 | + return false; | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + /** | ||
| 116 | + * Aktualisiert den zurzeit angemeldeten Benutzer. | ||
| 117 | + * | ||
| 118 | + * @param dto das {@link UserDto} enthält die Eigenschaften des zu aktualisierenden Benutzers | ||
| 119 | + * @return <code>true</code>, wenn das Aktualisieren des Benutzers erfolgreich war. | ||
| 120 | + */ | ||
| 121 | + public boolean updateUser(final UserDto dto) { | ||
| 122 | + // ist zurzeit ein Benutzer angemeldet, können wir ihn aktualisieren | ||
| 123 | + final User user = sessionContext.getUser(); | ||
| 124 | + if (user != null) { | ||
| 125 | + // TODO noch zu implementieren | ||
| 126 | + return false; | ||
| 127 | + } | ||
| 128 | + return false; | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | + /** | ||
| 85 | * Löscht den Benutzer mit der übergebenen Id. | 132 | * Löscht den Benutzer mit der übergebenen Id. |
| 86 | * | 133 | * |
| 87 | * @param id die Id des zu löschenden Benutzers | 134 | * @param id die Id des zu löschenden Benutzers |
| @@ -102,26 +149,44 @@ public class UserService { | @@ -102,26 +149,44 @@ public class UserService { | ||
| 102 | } | 149 | } |
| 103 | 150 | ||
| 104 | /** | 151 | /** |
| 105 | - * Liefert das {@link User}-Objekt des zurzeit angemeldeten Benutzers zurück. | 152 | + * Liefert das {@link User}-Objekt des zurzeit angemeldeten Benutzers zurück. Das ist derjenige |
| 153 | + * Benutzer, der im {@link SessionContext}-Objekt hinterlegt ist. | ||
| 154 | + * | ||
| 106 | * @return das User-Objekt des zurzeit angemeldeten Benutzers. | 155 | * @return das User-Objekt des zurzeit angemeldeten Benutzers. |
| 107 | */ | 156 | */ |
| 108 | - public User getSessionUser() { | 157 | + public User getSessionContextUser() { |
| 109 | return sessionContext.getUser(); | 158 | return sessionContext.getUser(); |
| 110 | } | 159 | } |
| 111 | 160 | ||
| 112 | /** | 161 | /** |
| 113 | - * Prüft, ob der zurzeit angemeldete Benutzer eine Rolle aus der Liste der übergebenen Rollen besitzt. | 162 | + * Prüft, ob der Benutzer des {@link SessionContext}s ein Recht aus der Liste der übergebenen Rechte besitzt. |
| 114 | * | 163 | * |
| 115 | - * @param rolesSet die Rollenliste | ||
| 116 | - * @return <code>true</code>, falls der zurzeit angemeldete Benutzer eine der übergebenen Rollen besitzt. | 164 | + * @param rightsSet die Rechteliste |
| 165 | + * @return <code>true</code>, falls der Benutzer eines der übergebenen Rechte besitzt. | ||
| 117 | */ | 166 | */ |
| 118 | - public boolean isUserAllowed(final Set<String> rolesSet) { | ||
| 119 | - final User user = getSessionUser(); | 167 | + public boolean isUserAllowed(final Set<String> rightsSet) { |
| 168 | + final User user = getSessionContextUser(); | ||
| 120 | 169 | ||
| 121 | - // ist überhaupt ein Benutzer angemeldet? | ||
| 122 | - if (user != null) { | ||
| 123 | - // TODO muss noch implementiert werden | ||
| 124 | - return true; | 170 | + // Rechte, die nur ein nicht-angemeldeter Benutzer besitzen kann |
| 171 | + if (user == null) { | ||
| 172 | + if (rightsSet.contains(RightState.Constants.NOT_LOGGED_IN)) { | ||
| 173 | + return true; | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + // Rechte, die nur ein angemeldeter Benutzer besitzen kann | ||
| 178 | + else { | ||
| 179 | + if (rightsSet.contains(RightState.Constants.LOGGED_IN)) { | ||
| 180 | + return true; | ||
| 181 | + } | ||
| 182 | + if (rightsSet.contains(RightState.Constants.ADMIN)) { | ||
| 183 | + // TODO muss noch implementiert werden | ||
| 184 | + return true; | ||
| 185 | + } | ||
| 186 | + if (rightsSet.contains(RightState.Constants.SUPERADMIN)) { | ||
| 187 | + // TODO muss noch implementiert werden | ||
| 188 | + return true; | ||
| 189 | + } | ||
| 125 | } | 190 | } |
| 126 | return false; | 191 | return false; |
| 127 | } | 192 | } |
src/main/java/net/ziemers/swxercise/ui/UserViewController.java
| @@ -8,6 +8,7 @@ import javax.inject.Inject; | @@ -8,6 +8,7 @@ import javax.inject.Inject; | ||
| 8 | import javax.ws.rs.*; | 8 | import javax.ws.rs.*; |
| 9 | import javax.ws.rs.core.MediaType; | 9 | import javax.ws.rs.core.MediaType; |
| 10 | 10 | ||
| 11 | +import net.ziemers.swxercise.lg.user.enums.RightState; | ||
| 11 | import net.ziemers.swxercise.lg.user.service.SessionContext; | 12 | import net.ziemers.swxercise.lg.user.service.SessionContext; |
| 12 | import net.ziemers.swxercise.lg.model.user.User; | 13 | import net.ziemers.swxercise.lg.model.user.User; |
| 13 | import net.ziemers.swxercise.lg.user.dto.UserDto; | 14 | import net.ziemers.swxercise.lg.user.dto.UserDto; |
| @@ -28,7 +29,7 @@ public class UserViewController { | @@ -28,7 +29,7 @@ public class UserViewController { | ||
| 28 | 29 | ||
| 29 | /** | 30 | /** |
| 30 | * Liefert alle User-Objekte zurück. | 31 | * Liefert alle User-Objekte zurück. |
| 31 | - * | 32 | + * <p> |
| 32 | * Aufruf: | 33 | * Aufruf: |
| 33 | * GET http://localhost:8080/swxercise/rest/v1/users | 34 | * GET http://localhost:8080/swxercise/rest/v1/users |
| 34 | * | 35 | * |
| @@ -37,13 +38,14 @@ public class UserViewController { | @@ -37,13 +38,14 @@ public class UserViewController { | ||
| 37 | @GET | 38 | @GET |
| 38 | @Path("v1/users") | 39 | @Path("v1/users") |
| 39 | @Produces(MediaType.APPLICATION_JSON) | 40 | @Produces(MediaType.APPLICATION_JSON) |
| 41 | + @RolesAllowed(RightState.Constants.SUPERADMIN) | ||
| 40 | public Collection<User> getAllUsers() { | 42 | public Collection<User> getAllUsers() { |
| 41 | return userService.findAllUsers(); | 43 | return userService.findAllUsers(); |
| 42 | } | 44 | } |
| 43 | 45 | ||
| 44 | /** | 46 | /** |
| 45 | * Liefert das User-Objekt mit der gewünschten Id zurück. | 47 | * Liefert das User-Objekt mit der gewünschten Id zurück. |
| 46 | - * | 48 | + * <p> |
| 47 | * Aufruf: | 49 | * Aufruf: |
| 48 | * GET http://localhost:8080/swxercise/rest/v1/user/42 | 50 | * GET http://localhost:8080/swxercise/rest/v1/user/42 |
| 49 | * | 51 | * |
| @@ -53,25 +55,39 @@ public class UserViewController { | @@ -53,25 +55,39 @@ public class UserViewController { | ||
| 53 | @GET | 55 | @GET |
| 54 | @Path("v1/user/{id}") | 56 | @Path("v1/user/{id}") |
| 55 | @Produces(MediaType.APPLICATION_JSON) | 57 | @Produces(MediaType.APPLICATION_JSON) |
| 56 | - public User getById(@PathParam("id") Long id) { | 58 | + @RolesAllowed(RightState.Constants.SUPERADMIN) |
| 59 | + public User getUser(@PathParam("id") Long id) { | ||
| 57 | return userService.findUser(id); | 60 | return userService.findUser(id); |
| 58 | } | 61 | } |
| 59 | 62 | ||
| 60 | /** | 63 | /** |
| 61 | - * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. | 64 | + * Liefert das User-Objekt des zurzeit angemeldeten Benutzers zurück. |
| 65 | + * <p> | ||
| 66 | + * Aufruf: | ||
| 67 | + * GET http://localhost:8080/swxercise/rest/v1/user | ||
| 62 | * | 68 | * |
| 69 | + * @return das User-Objekt als JSON, oder <code>null</code>, falls keines existiert. | ||
| 70 | + */ | ||
| 71 | + @GET | ||
| 72 | + @Path("v1/user") | ||
| 73 | + @Produces(MediaType.APPLICATION_JSON) | ||
| 74 | + @RolesAllowed(RightState.Constants.LOGGED_IN) | ||
| 75 | + public User getUser() { return userService.findUser(); } | ||
| 76 | + | ||
| 77 | + /** | ||
| 78 | + * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. | ||
| 79 | + * <p> | ||
| 63 | * Aufruf: | 80 | * Aufruf: |
| 64 | * POST http://localhost:8080/swxercise/rest/v1/user | 81 | * POST http://localhost:8080/swxercise/rest/v1/user |
| 65 | * | 82 | * |
| 66 | * @param dto das mittels der als JSON-Objekt übergebenenen Eigenschaften zu füllende {@link UserDto} | 83 | * @param dto das mittels der als JSON-Objekt übergebenenen Eigenschaften zu füllende {@link UserDto} |
| 67 | * @return ein {@link ResponseState}-Objekt mit den Ergebnisinformationen des Aufrufs. | 84 | * @return ein {@link ResponseState}-Objekt mit den Ergebnisinformationen des Aufrufs. |
| 68 | - | ||
| 69 | */ | 85 | */ |
| 70 | @POST | 86 | @POST |
| 71 | @Path("v1/user") | 87 | @Path("v1/user") |
| 72 | @Consumes(MediaType.APPLICATION_JSON) | 88 | @Consumes(MediaType.APPLICATION_JSON) |
| 73 | @Produces(MediaType.APPLICATION_JSON) | 89 | @Produces(MediaType.APPLICATION_JSON) |
| 74 | - @RolesAllowed("ADMIN") | 90 | + @RolesAllowed(RightState.Constants.ADMIN) |
| 75 | public RestResponse createUser(UserDto dto) { | 91 | public RestResponse createUser(UserDto dto) { |
| 76 | final Long id = userService.createUser(dto); | 92 | final Long id = userService.createUser(dto); |
| 77 | if (id != null) { | 93 | if (id != null) { |
| @@ -84,11 +100,11 @@ public class UserViewController { | @@ -84,11 +100,11 @@ public class UserViewController { | ||
| 84 | * Aktualisiert das User-Objekt mit der gewünschten Id mit den Eigenschaften, | 100 | * Aktualisiert das User-Objekt mit der gewünschten Id mit den Eigenschaften, |
| 85 | * welche mittels {@link UserDto} definiert werden. Der Pfadparameter wird | 101 | * welche mittels {@link UserDto} definiert werden. Der Pfadparameter wird |
| 86 | * als erstes ge'marshal't, das DTO im Post-Content danach (REST-Konvention). | 102 | * als erstes ge'marshal't, das DTO im Post-Content danach (REST-Konvention). |
| 87 | - * | 103 | + * <p> |
| 88 | * Aufruf: | 104 | * Aufruf: |
| 89 | * PUT http://localhost:8080/swxercise/rest/v1/user/42 | 105 | * PUT http://localhost:8080/swxercise/rest/v1/user/42 |
| 90 | * | 106 | * |
| 91 | - * @param id die Id des zu aktualisierenden User-Objekts | 107 | + * @param id die Id des zu aktualisierenden User-Objekts |
| 92 | * @param dto das mittels der als JSON-Objekt übergebenenen Eigenschaften zu füllende {@link UserDto} | 108 | * @param dto das mittels der als JSON-Objekt übergebenenen Eigenschaften zu füllende {@link UserDto} |
| 93 | * @return ein {@link ResponseState}-Objekt mit den Ergebnisinformationen des Aufrufs. | 109 | * @return ein {@link ResponseState}-Objekt mit den Ergebnisinformationen des Aufrufs. |
| 94 | */ | 110 | */ |
| @@ -96,15 +112,41 @@ public class UserViewController { | @@ -96,15 +112,41 @@ public class UserViewController { | ||
| 96 | @Path("v1/user/{id}") | 112 | @Path("v1/user/{id}") |
| 97 | @Consumes(MediaType.APPLICATION_JSON) | 113 | @Consumes(MediaType.APPLICATION_JSON) |
| 98 | @Produces(MediaType.APPLICATION_JSON) | 114 | @Produces(MediaType.APPLICATION_JSON) |
| 99 | - @RolesAllowed("ADMIN") | 115 | + @RolesAllowed(RightState.Constants.ADMIN) |
| 100 | public RestResponse updateUser(@PathParam("id") Long id, UserDto dto) { | 116 | public RestResponse updateUser(@PathParam("id") Long id, UserDto dto) { |
| 101 | - // TODO noch zu implementieren | 117 | + if (userService.updateUser(id, dto)) { |
| 118 | + return new RestResponse(); | ||
| 119 | + } | ||
| 102 | return new RestResponse(ResponseState.FAILED); | 120 | return new RestResponse(ResponseState.FAILED); |
| 103 | } | 121 | } |
| 104 | 122 | ||
| 105 | /** | 123 | /** |
| 106 | - * Löscht das User-Objekt mit der gewünschten Id. | 124 | + * Aktualisiert das User-Objekt des zurzeit angemeldeten Benutzers mit den |
| 125 | + * Eigenschaften, welche mittels {@link UserDto} definiert werden. Der | ||
| 126 | + * Pfadparameter wird als erstes ge'marshal't, das DTO im Post-Content | ||
| 127 | + * danach (REST-Konvention). | ||
| 128 | + * <p> | ||
| 129 | + * Aufruf: | ||
| 130 | + * PUT http://localhost:8080/swxercise/rest/v1/user | ||
| 107 | * | 131 | * |
| 132 | + * @param dto das mittels der als JSON-Objekt übergebenenen Eigenschaften zu füllende {@link UserDto} | ||
| 133 | + * @return ein {@link ResponseState}-Objekt mit den Ergebnisinformationen des Aufrufs. | ||
| 134 | + */ | ||
| 135 | + @PUT | ||
| 136 | + @Path("v1/user") | ||
| 137 | + @Consumes(MediaType.APPLICATION_JSON) | ||
| 138 | + @Produces(MediaType.APPLICATION_JSON) | ||
| 139 | + @RolesAllowed(RightState.Constants.LOGGED_IN) | ||
| 140 | + public RestResponse updateUser(UserDto dto) { | ||
| 141 | + if (userService.updateUser(dto)) { | ||
| 142 | + return new RestResponse(); | ||
| 143 | + } | ||
| 144 | + return new RestResponse(ResponseState.FAILED); | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | + /** | ||
| 148 | + * Löscht das User-Objekt mit der gewünschten Id. | ||
| 149 | + * <p> | ||
| 108 | * Aufruf: | 150 | * Aufruf: |
| 109 | * DELETE http://localhost:8080/swxercise/rest/v1/user/42 | 151 | * DELETE http://localhost:8080/swxercise/rest/v1/user/42 |
| 110 | * | 152 | * |
| @@ -114,7 +156,7 @@ public class UserViewController { | @@ -114,7 +156,7 @@ public class UserViewController { | ||
| 114 | @DELETE | 156 | @DELETE |
| 115 | @Path("v1/user/{id}") | 157 | @Path("v1/user/{id}") |
| 116 | @Produces(MediaType.APPLICATION_JSON) | 158 | @Produces(MediaType.APPLICATION_JSON) |
| 117 | - @RolesAllowed("ADMIN") | 159 | + @RolesAllowed(RightState.Constants.ADMIN) |
| 118 | public RestResponse deleteUser(@PathParam("id") Long id) { | 160 | public RestResponse deleteUser(@PathParam("id") Long id) { |
| 119 | userService.deleteUser(id); | 161 | userService.deleteUser(id); |
| 120 | return new RestResponse(); | 162 | return new RestResponse(); |
| @@ -122,7 +164,7 @@ public class UserViewController { | @@ -122,7 +164,7 @@ public class UserViewController { | ||
| 122 | 164 | ||
| 123 | /** | 165 | /** |
| 124 | * Löscht das User-Objekt des zurzeit angemeldeten Benutzers. | 166 | * Löscht das User-Objekt des zurzeit angemeldeten Benutzers. |
| 125 | - * | 167 | + * <p> |
| 126 | * Aufruf: | 168 | * Aufruf: |
| 127 | * DELETE http://localhost:8080/swxercise/rest/v1/user | 169 | * DELETE http://localhost:8080/swxercise/rest/v1/user |
| 128 | * | 170 | * |
| @@ -131,6 +173,7 @@ public class UserViewController { | @@ -131,6 +173,7 @@ public class UserViewController { | ||
| 131 | @DELETE | 173 | @DELETE |
| 132 | @Path("v1/user") | 174 | @Path("v1/user") |
| 133 | @Produces(MediaType.APPLICATION_JSON) | 175 | @Produces(MediaType.APPLICATION_JSON) |
| 176 | + @RolesAllowed(RightState.Constants.LOGGED_IN) | ||
| 134 | public RestResponse deleteUser() { | 177 | public RestResponse deleteUser() { |
| 135 | if (userService.deleteUser()) { | 178 | if (userService.deleteUser()) { |
| 136 | return new RestResponse(); | 179 | return new RestResponse(); |
| @@ -140,7 +183,7 @@ public class UserViewController { | @@ -140,7 +183,7 @@ public class UserViewController { | ||
| 140 | 183 | ||
| 141 | /** | 184 | /** |
| 142 | * Meldet einen Benutzer durch übergebenen username und password mit einem neuen User-{@link SessionContext} an. | 185 | * Meldet einen Benutzer durch übergebenen username und password mit einem neuen User-{@link SessionContext} an. |
| 143 | - * | 186 | + * <p> |
| 144 | * Aufruf: | 187 | * Aufruf: |
| 145 | * POST http://localhost:8080/swxercise/rest/v1/user/login | 188 | * POST http://localhost:8080/swxercise/rest/v1/user/login |
| 146 | * | 189 | * |
| @@ -151,6 +194,7 @@ public class UserViewController { | @@ -151,6 +194,7 @@ public class UserViewController { | ||
| 151 | @Path("v1/user/login") | 194 | @Path("v1/user/login") |
| 152 | @Consumes(MediaType.APPLICATION_JSON) | 195 | @Consumes(MediaType.APPLICATION_JSON) |
| 153 | @Produces(MediaType.APPLICATION_JSON) | 196 | @Produces(MediaType.APPLICATION_JSON) |
| 197 | + @RolesAllowed(RightState.Constants.NOT_LOGGED_IN) | ||
| 154 | public RestResponse loginUser(UserDto dto) { | 198 | public RestResponse loginUser(UserDto dto) { |
| 155 | if (userService.loginUser(dto)) { | 199 | if (userService.loginUser(dto)) { |
| 156 | return new RestResponse(); | 200 | return new RestResponse(); |
| @@ -160,7 +204,7 @@ public class UserViewController { | @@ -160,7 +204,7 @@ public class UserViewController { | ||
| 160 | 204 | ||
| 161 | /** | 205 | /** |
| 162 | * Meldet den angemeldeten Benutzer von seinem User-{@link SessionContext} ab. | 206 | * Meldet den angemeldeten Benutzer von seinem User-{@link SessionContext} ab. |
| 163 | - * | 207 | + * <p> |
| 164 | * Aufruf: | 208 | * Aufruf: |
| 165 | * POST http://localhost:8080/swxercise/rest/v1/user/logout | 209 | * POST http://localhost:8080/swxercise/rest/v1/user/logout |
| 166 | * | 210 | * |
| @@ -169,6 +213,7 @@ public class UserViewController { | @@ -169,6 +213,7 @@ public class UserViewController { | ||
| 169 | @POST | 213 | @POST |
| 170 | @Path("v1/user/logout") | 214 | @Path("v1/user/logout") |
| 171 | @Produces(MediaType.APPLICATION_JSON) | 215 | @Produces(MediaType.APPLICATION_JSON) |
| 216 | + @RolesAllowed(RightState.Constants.LOGGED_IN) | ||
| 172 | public RestResponse logoutUser() { | 217 | public RestResponse logoutUser() { |
| 173 | if (userService.logoutUser()) { | 218 | if (userService.logoutUser()) { |
| 174 | return new RestResponse(); | 219 | return new RestResponse(); |