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,7 +145,7 @@ public class Profile extends BaseEntity {
145 return passwordHash; 145 return passwordHash;
146 } 146 }
147 147
148 - private void setPassword(String password) { 148 + public void setPassword(String password) {
149 // das Klartextkennwort wird niemals gespeichert! 149 // das Klartextkennwort wird niemals gespeichert!
150 this.passwordHash = cryptString(password); 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,7 +18,6 @@ public class User extends BaseEntity {
18 18
19 private String lastname; 19 private String lastname;
20 20
21 - @NotNull  
22 private Profile profile; 21 private Profile profile;
23 22
24 private Address address; 23 private Address address;
src/main/java/net/ziemers/swxercise/lg/user/dto/UserDto.java
@@ -14,7 +14,7 @@ public class UserDto { @@ -14,7 +14,7 @@ public class UserDto {
14 private String username; // aus dem Profile 14 private String username; // aus dem Profile
15 15
16 @NotNull 16 @NotNull
17 - private String password; // aus dem Profile 17 + private String password = ""; // aus dem Profile
18 18
19 private String firstname; 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,4 +35,5 @@ public class SessionContext implements java.io.Serializable {
35 } 35 }
36 return false; 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,7 +23,7 @@ public class UserDtoToEntityContextService {
23 public UserDtoToEntityContext createContext(final UserDto dto) { 23 public UserDtoToEntityContext createContext(final UserDto dto) {
24 final UserDtoToEntityContext ctx = new UserDtoToEntityContext(); 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 ctx.dto = dto; 27 ctx.dto = dto;
28 28
29 // einen neuen oder einen bereits existierenden Benutzer in den Kontext füllen 29 // einen neuen oder einen bereits existierenden Benutzer in den Kontext füllen
@@ -35,6 +35,9 @@ public class UserDtoToEntityContextService { @@ -35,6 +35,9 @@ public class UserDtoToEntityContextService {
35 // wir füllen das User-Objekt mit Method Chaining 35 // wir füllen das User-Objekt mit Method Chaining
36 ctx.user = new User(dto.getFirstname(), dto.getLastname()) 36 ctx.user = new User(dto.getFirstname(), dto.getLastname())
37 .withProfile(ctx.profile); 37 .withProfile(ctx.profile);
  38 + } else {
  39 + ctx.profile = ctx.user.getProfile();
  40 + ctx.address = ctx.user.getAddress();
38 } 41 }
39 return ctx; 42 return ctx;
40 } 43 }
src/main/java/net/ziemers/swxercise/lg/user/service/UserDtoToEntityMapper.java
@@ -17,11 +17,20 @@ public class UserDtoToEntityMapper { @@ -17,11 +17,20 @@ public class UserDtoToEntityMapper {
17 * @return den Kontext. 17 * @return den Kontext.
18 */ 18 */
19 public UserDtoToEntityContext map(UserDtoToEntityContext ctx) { 19 public UserDtoToEntityContext map(UserDtoToEntityContext ctx) {
  20 + // User-Objekt mappen
20 ctx.user.setFirstname(ctx.dto.getFirstname()); 21 ctx.user.setFirstname(ctx.dto.getFirstname());
21 ctx.user.setLastname(ctx.dto.getLastname()); 22 ctx.user.setLastname(ctx.dto.getLastname());
  23 +
  24 + // Profile-Objekt mappen, falls gegeben
22 if (ctx.profile != null) { 25 if (ctx.profile != null) {
23 ctx.user.setProfile(ctx.profile); 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 if (ctx.address != null) { 34 if (ctx.address != null) {
26 ctx.user.setAddress(ctx.address); 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,8 +123,11 @@ public class UserService {
123 // ist zurzeit ein Benutzer angemeldet, können wir ihn aktualisieren 123 // ist zurzeit ein Benutzer angemeldet, können wir ihn aktualisieren
124 final User user = sessionContext.getUser(); 124 final User user = sessionContext.getUser();
125 if (user != null) { 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 return false; 132 return false;
130 } 133 }