Do not map creation/modification dates on post

This commit is contained in:
René Pfeuffer
2018-06-13 11:04:56 +02:00
parent b09bf67959
commit 6dfd0353ce
2 changed files with 49 additions and 23 deletions

View File

@@ -5,12 +5,10 @@ import org.apache.shiro.authc.credential.PasswordService;
import org.mapstruct.Context;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.Named;
import sonia.scm.user.User;
import java.time.Instant;
import java.util.Optional;
import static sonia.scm.api.rest.resources.UserResource.DUMMY_PASSWORT;
@Mapper
@@ -19,7 +17,11 @@ public abstract class UserDto2UserMapper {
@Inject
private PasswordService passwordService;
@Mapping(source = "password", target = "password", qualifiedByName = "encrypt")
@Mappings({
@Mapping(source = "password", target = "password", qualifiedByName = "encrypt"),
@Mapping(target = "creationDate", ignore = true),
@Mapping(target = "lastModified", ignore = true)
})
public abstract User userDtoToUser(UserDto userDto, @Context String originalPassword);
@Named("encrypt")
@@ -34,15 +36,4 @@ public abstract class UserDto2UserMapper {
return passwordService.encryptPassword(password);
}
}
@Mapping(target = "creationDate")
Long mapTime(Instant instant) {
// TODO assert parameter not null
return instant.toEpochMilli();
}
@Mapping(target = "lastModified")
Long mapOptionalTime(Optional<Instant> instant) {
return instant.map(Instant::toEpochMilli).orElse(null);
}
}