Roadmap: Create principal only with id. Fix a bug with users in a new version of dataset profile.

This commit is contained in:
Konstantinos Triantafyllou 2022-05-31 17:21:57 +03:00
parent f76686728a
commit 5fef47b481
3 changed files with 24 additions and 22 deletions

View File

@ -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();*/
}
}

View File

@ -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

View File

@ -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);