Commit d7f85b58a06894d88d509b5c3663ea5c08c8f686

Authored by Thomas Ziemer
1 parent f8f21bfa

bugfix: Angemeldeten Benutzer aktualisieren

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