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 {
|
public void run(String... args) throws Exception {
|
||||||
this.service.migrateUsers();
|
this.service.migrateUsers();
|
||||||
this.service.migrate();
|
this.service.migrate();
|
||||||
/*Thread.sleep(20000);
|
|
||||||
this.service.clear();*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,20 +70,10 @@ public class ArgosService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public Principal login(UserInfo userInfo) {
|
public Principal login(UserInfo userInfo) {
|
||||||
QueryableList<UserToken> query = context.getOperationsContext().getDatabaseRepository().getUserTokenDao().asQueryable();
|
Principal principal = new Principal();
|
||||||
query.where((builder, root) -> builder.equal(root.get("user").get("id"), userInfo.getId()));
|
principal.setId(userInfo.getId());
|
||||||
query.where((builder, root) -> builder.greaterThan(root.get("expiresAt"), new Date()));
|
return principal;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@ConditionalOnProperty(prefix = "roadmap", name = "database.url")
|
@ConditionalOnProperty(prefix = "roadmap", name = "database.url")
|
||||||
|
@ -78,16 +79,29 @@ public class DMPRoadmapService {
|
||||||
this.argosService.assignRole(userInfo, Authorities.DATASET_PROFILE_MANAGER);
|
this.argosService.assignRole(userInfo, Authorities.DATASET_PROFILE_MANAGER);
|
||||||
this.principal = this.argosService.login(userInfo);
|
this.principal = this.argosService.login(userInfo);
|
||||||
DatasetProfile datasetProfile = template.buildDatasetProfile();
|
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 (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);
|
id = this.argosService.createDatasetProfile(datasetProfile, principal);
|
||||||
} else {
|
} 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);
|
id = this.argosService.createNewVersionDatasetProfile(id, datasetProfile);
|
||||||
}
|
}
|
||||||
this.datasetProfiles.add(id);
|
this.datasetProfiles.add(id);
|
||||||
|
|
Loading…
Reference in New Issue