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,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 | * Meldet einen Benutzer von diesem Session-Kontext ab. | 102 | * Meldet einen Benutzer von diesem Session-Kontext ab. |
90 | * | 103 | * |
91 | * @return <code>true</code>, wenn die Abmeldung erfolgreich durchgeführt werden konnte. | 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,7 +127,15 @@ public class UserService { | ||
127 | 127 | ||
128 | final UserDtoToEntityContext ctx = ctxService.createContext(dto); | 128 | final UserDtoToEntityContext ctx = ctxService.createContext(dto); |
129 | mapper.map(ctx); | 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 | return false; | 140 | return false; |
133 | } | 141 | } |
@@ -140,7 +148,11 @@ public class UserService { | @@ -140,7 +148,11 @@ public class UserService { | ||
140 | */ | 148 | */ |
141 | public boolean updateUser(final UserDto dto) { | 149 | public boolean updateUser(final UserDto dto) { |
142 | final User user = sessionContext.getUser(); | 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,7 +101,8 @@ public class UserViewController { | ||
101 | public User getUser() { | 101 | public User getUser() { |
102 | logger.info("Trying to get user's profile info."); | 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 | * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. | 108 | * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. |