Roadmap: Create principal only with id. Fix a bug with users in a new version of dataset profile.
This commit is contained in:
parent
f76686728a
commit
5fef47b481
|
@ -31,7 +31,5 @@ public class DMPRoadmapMigration implements CommandLineRunner {
|
|||
public void run(String... args) throws Exception {
|
||||
this.service.migrateUsers();
|
||||
this.service.migrate();
|
||||
/*Thread.sleep(20000);
|
||||
this.service.clear();*/
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,20 +70,10 @@ public class ArgosService {
|
|||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Principal login(UserInfo userInfo) {
|
||||
QueryableList<UserToken> query = context.getOperationsContext().getDatabaseRepository().getUserTokenDao().asQueryable();
|
||||
query.where((builder, root) -> builder.equal(root.get("user").get("id"), userInfo.getId()));
|
||||
query.where((builder, root) -> builder.greaterThan(root.get("expiresAt"), new Date()));
|
||||
UserToken userToken = query.getSingleOrDefault();
|
||||
if(userToken == null) {
|
||||
userToken = this.context.getOperationsContext().getBuilderFactory().getBuilder(UserTokenBuilder.class)
|
||||
.issuedAt(new Date()).user(userInfo)
|
||||
.token(UUID.randomUUID()).expiresAt(Timestamp.valueOf(LocalDateTime.now().plusDays(10)))
|
||||
.build();
|
||||
userToken = context.getOperationsContext().getDatabaseRepository().getUserTokenDao().createOrUpdate(userToken);
|
||||
}
|
||||
return authenticationService.Touch(userToken);
|
||||
Principal principal = new Principal();
|
||||
principal.setId(userInfo.getId());
|
||||
return principal;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
|
|
@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Service
|
||||
@ConditionalOnProperty(prefix = "roadmap", name = "database.url")
|
||||
|
@ -78,16 +79,29 @@ public class DMPRoadmapService {
|
|||
this.argosService.assignRole(userInfo, Authorities.DATASET_PROFILE_MANAGER);
|
||||
this.principal = this.argosService.login(userInfo);
|
||||
DatasetProfile datasetProfile = template.buildDatasetProfile();
|
||||
if (users.size() > 1) {
|
||||
datasetProfile.setUsers(users.subList(1, users.size()).stream().map(info -> {
|
||||
UserInfoListingModel model = new UserInfoListingModel();
|
||||
model.setId(info.getId());
|
||||
return model;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
if (id == null) {
|
||||
if (users.size() > 1) {
|
||||
datasetProfile.setUsers(users.subList(1, users.size()).stream().map(info -> {
|
||||
UserInfoListingModel model = new UserInfoListingModel();
|
||||
model.setId(info.getId());
|
||||
return model;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
id = this.argosService.createDatasetProfile(datasetProfile, principal);
|
||||
} else {
|
||||
if (users.size() > 0) {
|
||||
datasetProfile.setUsers(users.stream().map(info -> {
|
||||
UserInfoListingModel model = new UserInfoListingModel();
|
||||
model.setId(info.getId());
|
||||
return model;
|
||||
}).collect(Collectors.toList()));
|
||||
} else {
|
||||
datasetProfile.setUsers(Stream.of(userInfo).map(info -> {
|
||||
UserInfoListingModel model = new UserInfoListingModel();
|
||||
model.setId(info.getId());
|
||||
return model;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
id = this.argosService.createNewVersionDatasetProfile(id, datasetProfile);
|
||||
}
|
||||
this.datasetProfiles.add(id);
|
||||
|
|
Loading…
Reference in New Issue