Commit 7a765da25098cb6c12f625e6037af0ae0f0162af

Authored by Thomas Ziemer
1 parent 493ca844

refactor: updateUser mit Kontext und Mapper re-implementiert

src/main/java/net/ziemers/swxercise/lg/model/user/Profile.java
... ... @@ -145,7 +145,7 @@ public class Profile extends BaseEntity {
145 145 return passwordHash;
146 146 }
147 147  
148   - private void setPassword(String password) {
  148 + public void setPassword(String password) {
149 149 // das Klartextkennwort wird niemals gespeichert!
150 150 this.passwordHash = cryptString(password);
151 151 }
... ...
src/main/java/net/ziemers/swxercise/lg/model/user/User.java
... ... @@ -18,7 +18,6 @@ public class User extends BaseEntity {
18 18  
19 19 private String lastname;
20 20  
21   - @NotNull
22 21 private Profile profile;
23 22  
24 23 private Address address;
... ...
src/main/java/net/ziemers/swxercise/lg/user/dto/UserDto.java
... ... @@ -14,7 +14,7 @@ public class UserDto {
14 14 private String username; // aus dem Profile
15 15  
16 16 @NotNull
17   - private String password; // aus dem Profile
  17 + private String password = ""; // aus dem Profile
18 18  
19 19 private String firstname;
20 20  
... ...
src/main/java/net/ziemers/swxercise/lg/user/service/SessionContext.java
... ... @@ -35,4 +35,5 @@ public class SessionContext implements java.io.Serializable {
35 35 }
36 36 return false;
37 37 }
  38 +
38 39 }
... ...
src/main/java/net/ziemers/swxercise/lg/user/service/UserDtoToEntityContextService.java
... ... @@ -23,7 +23,7 @@ public class UserDtoToEntityContextService {
23 23 public UserDtoToEntityContext createContext(final UserDto dto) {
24 24 final UserDtoToEntityContext ctx = new UserDtoToEntityContext();
25 25  
26   - // das UserDTO in den Kontext füllen
  26 + // das übergebene UserDto in den Kontext füllen
27 27 ctx.dto = dto;
28 28  
29 29 // einen neuen oder einen bereits existierenden Benutzer in den Kontext füllen
... ... @@ -35,6 +35,9 @@ public class UserDtoToEntityContextService {
35 35 // wir füllen das User-Objekt mit Method Chaining
36 36 ctx.user = new User(dto.getFirstname(), dto.getLastname())
37 37 .withProfile(ctx.profile);
  38 + } else {
  39 + ctx.profile = ctx.user.getProfile();
  40 + ctx.address = ctx.user.getAddress();
38 41 }
39 42 return ctx;
40 43 }
... ...
src/main/java/net/ziemers/swxercise/lg/user/service/UserDtoToEntityMapper.java
... ... @@ -17,11 +17,20 @@ public class UserDtoToEntityMapper {
17 17 * @return den Kontext.
18 18 */
19 19 public UserDtoToEntityContext map(UserDtoToEntityContext ctx) {
  20 + // User-Objekt mappen
20 21 ctx.user.setFirstname(ctx.dto.getFirstname());
21 22 ctx.user.setLastname(ctx.dto.getLastname());
  23 +
  24 + // Profile-Objekt mappen, falls gegeben
22 25 if (ctx.profile != null) {
23 26 ctx.user.setProfile(ctx.profile);
  27 + if(ctx.dto.getPassword().length() > 0) {
  28 + ctx.profile.setPassword(ctx.dto.getPassword());
  29 + }
  30 + ctx.profile.setMailaddress(ctx.dto.getMailaddress());
24 31 }
  32 +
  33 + // Address-Objekt mappen, falls gegeben
25 34 if (ctx.address != null) {
26 35 ctx.user.setAddress(ctx.address);
27 36 }
... ...
src/main/java/net/ziemers/swxercise/lg/user/service/UserService.java
... ... @@ -123,8 +123,11 @@ public class UserService {
123 123 // ist zurzeit ein Benutzer angemeldet, können wir ihn aktualisieren
124 124 final User user = sessionContext.getUser();
125 125 if (user != null) {
126   - // TODO noch zu implementieren
127   - return false;
  126 + // der Benutzername darf sich beim Aktualisieren nicht mehr ändern!
  127 + dto.withUsername(user.getProfile().getUsername());
  128 + final UserDtoToEntityContext ctx = ctxService.createContext(dto);
  129 + mapper.map(ctx);
  130 + return dao.saveOrUpdate(ctx.user) != null;
128 131 }
129 132 return false;
130 133 }
... ...