Commit d7f85b58a06894d88d509b5c3663ea5c08c8f686
1 parent
f8f21bfa
bugfix: Angemeldeten Benutzer aktualisieren
Showing
3 changed files
with
29 additions
and
3 deletions
src/main/java/net/ziemers/swxercise/lg/user/service/SessionContext.java
| ... | ... | @@ -86,6 +86,19 @@ public class SessionContext implements java.io.Serializable { |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | /** |
| 89 | + * Aktualisiert das Benutzerobjekt dieses Session-Kontexts. | |
| 90 | + * | |
| 91 | + * @return <code>true</code>, wenn die Aktualisierung erfolgreich durchgeführt werden konnte. | |
| 92 | + */ | |
| 93 | + public boolean refresh(final User user) { | |
| 94 | + if (getUser() != null) { | |
| 95 | + setUser(user); | |
| 96 | + return true; | |
| 97 | + } | |
| 98 | + return false; | |
| 99 | + } | |
| 100 | + | |
| 101 | + /** | |
| 89 | 102 | * Meldet einen Benutzer von diesem Session-Kontext ab. |
| 90 | 103 | * |
| 91 | 104 | * @return <code>true</code>, wenn die Abmeldung erfolgreich durchgeführt werden konnte. | ... | ... |
src/main/java/net/ziemers/swxercise/lg/user/service/UserService.java
| ... | ... | @@ -127,7 +127,15 @@ public class UserService { |
| 127 | 127 | |
| 128 | 128 | final UserDtoToEntityContext ctx = ctxService.createContext(dto); |
| 129 | 129 | mapper.map(ctx); |
| 130 | - return dao.saveOrUpdate(ctx.user) != null; | |
| 130 | + | |
| 131 | + if (dao.saveOrUpdate(ctx.user) != null) { | |
| 132 | + // handelt es sich um das Benutzerobjekt des angemeldeten Benutzers? | |
| 133 | + if (dto.getUsername().equals(ctx.user.getProfile().getUsername())) { | |
| 134 | + // aktualisiert das Benutzerobjekt des Session-Kontexts | |
| 135 | + return sessionContext.refresh(ctx.user); | |
| 136 | + } | |
| 137 | + return true; | |
| 138 | + } | |
| 131 | 139 | } |
| 132 | 140 | return false; |
| 133 | 141 | } |
| ... | ... | @@ -140,7 +148,11 @@ public class UserService { |
| 140 | 148 | */ |
| 141 | 149 | public boolean updateUser(final UserDto dto) { |
| 142 | 150 | final User user = sessionContext.getUser(); |
| 143 | - return updateUser(user.getId(), dto); | |
| 151 | + if (updateUser(user.getId(), dto)) { | |
| 152 | + // aktualisiert das Benutzerobjekt des Session-Kontexts | |
| 153 | + return sessionContext.refresh(dao.findById(user.getId())); | |
| 154 | + } | |
| 155 | + return false; | |
| 144 | 156 | } |
| 145 | 157 | |
| 146 | 158 | /** | ... | ... |
src/main/java/net/ziemers/swxercise/ui/UserViewController.java
| ... | ... | @@ -101,7 +101,8 @@ public class UserViewController { |
| 101 | 101 | public User getUser() { |
| 102 | 102 | logger.info("Trying to get user's profile info."); |
| 103 | 103 | |
| 104 | - return userService.findUser(); } | |
| 104 | + return userService.findUser(); | |
| 105 | + } | |
| 105 | 106 | |
| 106 | 107 | /** |
| 107 | 108 | * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. | ... | ... |