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. | ... | ... |