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