Refactor and add logic for removing users from Dataset Templates
This commit is contained in:
parent
bc3c8b44d2
commit
4156875bae
|
@ -1,6 +1,5 @@
|
||||||
package eu.eudat.controllers;
|
package eu.eudat.controllers;
|
||||||
|
|
||||||
import eu.eudat.data.dao.entities.UserDatasetProfileDao;
|
|
||||||
import eu.eudat.data.entities.UserDatasetProfile;
|
import eu.eudat.data.entities.UserDatasetProfile;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
||||||
import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem;
|
import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem;
|
||||||
|
@ -17,7 +16,6 @@ import eu.eudat.models.data.datasetprofile.DatasetProfileListingModel;
|
||||||
import eu.eudat.models.data.helpers.common.DataTableData;
|
import eu.eudat.models.data.helpers.common.DataTableData;
|
||||||
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
||||||
import eu.eudat.models.data.listingmodels.UserInfoListingModel;
|
import eu.eudat.models.data.listingmodels.UserInfoListingModel;
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import eu.eudat.models.data.security.Principal;
|
import eu.eudat.models.data.security.Principal;
|
||||||
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
||||||
import eu.eudat.types.ApiMessageCode;
|
import eu.eudat.types.ApiMessageCode;
|
||||||
|
@ -70,16 +68,7 @@ public class Admin extends BaseController {
|
||||||
userDatasetProfile.setUser(userInfo);
|
userDatasetProfile.setUser(userInfo);
|
||||||
userDatasetProfile.setRole(0);
|
userDatasetProfile.setRole(0);
|
||||||
getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
|
getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
|
||||||
if (profile.getUsers() != null && !profile.getUsers().isEmpty()) {
|
datasetProfileManager.storeDatasetProfileUsers(datasetProfile, profile);
|
||||||
profile.getUsers().forEach(userInfoListingModel -> {
|
|
||||||
UserDatasetProfile userDatasetProfile1 = new UserDatasetProfile();
|
|
||||||
userDatasetProfile1.setDatasetProfile(datasetProfile);
|
|
||||||
UserInfo userInfo1 = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userInfoListingModel.getId());
|
|
||||||
userDatasetProfile1.setUser(userInfo1);
|
|
||||||
userDatasetProfile1.setRole(1);
|
|
||||||
getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId());
|
return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,16 +84,7 @@ public class Admin extends BaseController {
|
||||||
datasetprofile.setDescription(modelDefinition.getDescription());
|
datasetprofile.setDescription(modelDefinition.getDescription());
|
||||||
datasetprofile.setLanguage(modelDefinition.getLanguage());
|
datasetprofile.setLanguage(modelDefinition.getLanguage());
|
||||||
eu.eudat.data.entities.DatasetProfile datasetProfile = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(datasetprofile);
|
eu.eudat.data.entities.DatasetProfile datasetProfile = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(datasetprofile);
|
||||||
if (profile.getUsers() != null && !profile.getUsers().isEmpty()) {
|
datasetProfileManager.storeDatasetProfileUsers(datasetProfile, profile);
|
||||||
profile.getUsers().forEach(userInfoListingModel -> {
|
|
||||||
UserDatasetProfile userDatasetProfile1 = new UserDatasetProfile();
|
|
||||||
userDatasetProfile1.setDatasetProfile(datasetProfile);
|
|
||||||
UserInfo userInfo1 = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userInfoListingModel.getId());
|
|
||||||
userDatasetProfile1.setUser(userInfo1);
|
|
||||||
userDatasetProfile1.setRole(1);
|
|
||||||
getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<UUID>().status(ApiMessageCode.NO_MESSAGE));
|
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<UUID>().status(ApiMessageCode.NO_MESSAGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,16 +128,7 @@ public class Admin extends BaseController {
|
||||||
eu.eudat.models.data.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile);
|
eu.eudat.models.data.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile);
|
||||||
datasetprofile.setLabel(profile.getLabel() + " new ");
|
datasetprofile.setLabel(profile.getLabel() + " new ");
|
||||||
datasetprofile.setLanguage(profile.getLanguage());
|
datasetprofile.setLanguage(profile.getLanguage());
|
||||||
if (profile.getUsers() != null && !profile.getUsers().isEmpty()) {
|
datasetProfileManager.retrieveUsers(profile, datasetprofile);
|
||||||
datasetprofile.setUsers(profile.getUsers().stream().map(userDatasetProfile -> {
|
|
||||||
UserInfoListingModel userInfoListingModel = new UserInfoListingModel();
|
|
||||||
userInfoListingModel.setId(userDatasetProfile.getUser().getId());
|
|
||||||
userInfoListingModel.setName(userDatasetProfile.getUser().getName());
|
|
||||||
userInfoListingModel.setEmail(userDatasetProfile.getUser().getEmail());
|
|
||||||
userInfoListingModel.setRole(userDatasetProfile.getRole());
|
|
||||||
return userInfoListingModel;
|
|
||||||
}).collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().payload(datasetprofile));
|
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().payload(datasetprofile));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@ import com.jayway.jsonpath.DocumentContext;
|
||||||
import com.jayway.jsonpath.JsonPath;
|
import com.jayway.jsonpath.JsonPath;
|
||||||
import eu.eudat.data.dao.criteria.DatasetProfileCriteria;
|
import eu.eudat.data.dao.criteria.DatasetProfileCriteria;
|
||||||
import eu.eudat.data.entities.DatasetProfile;
|
import eu.eudat.data.entities.DatasetProfile;
|
||||||
|
import eu.eudat.data.entities.UserDatasetProfile;
|
||||||
|
import eu.eudat.data.entities.UserInfo;
|
||||||
import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileAutocompleteRequest;
|
import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileAutocompleteRequest;
|
||||||
import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem;
|
import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem;
|
||||||
import eu.eudat.exceptions.datasetprofile.DatasetProfileNewVersionException;
|
import eu.eudat.exceptions.datasetprofile.DatasetProfileNewVersionException;
|
||||||
|
@ -72,16 +74,7 @@ public class DatasetProfileManager {
|
||||||
datasetprofile.setDescription(profile.getDescription());
|
datasetprofile.setDescription(profile.getDescription());
|
||||||
datasetprofile.setLanguage(profile.getLanguage());
|
datasetprofile.setLanguage(profile.getLanguage());
|
||||||
datasetprofile.setUsers(new ArrayList<>());
|
datasetprofile.setUsers(new ArrayList<>());
|
||||||
if (profile.getUsers() != null && !profile.getUsers().isEmpty()) {
|
retrieveUsers(profile, datasetprofile);
|
||||||
datasetprofile.getUsers().addAll(profile.getUsers().stream().map(userDatasetProfile -> {
|
|
||||||
UserInfoListingModel userInfoListingModel = new UserInfoListingModel();
|
|
||||||
userInfoListingModel.setId(userDatasetProfile.getUser().getId());
|
|
||||||
userInfoListingModel.setName(userDatasetProfile.getUser().getName());
|
|
||||||
userInfoListingModel.setEmail(userInfoListingModel.getEmail());
|
|
||||||
userInfoListingModel.setRole(userInfoListingModel.getRole());
|
|
||||||
return userInfoListingModel;
|
|
||||||
}).collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
return datasetprofile;
|
return datasetprofile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -276,4 +269,34 @@ public class DatasetProfileManager {
|
||||||
throw new DatasetProfileNewVersionException("Version to update not the latest.");
|
throw new DatasetProfileNewVersionException("Version to update not the latest.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void storeDatasetProfileUsers(DatasetProfile entity, eu.eudat.models.data.admin.composite.DatasetProfile model) {
|
||||||
|
if (model.getUsers() != null && !model.getUsers().isEmpty()) {
|
||||||
|
model.getUsers().stream().filter(userInfoListingModel -> entity.getUsers().stream().filter(userDatasetProfile -> userDatasetProfile.getUser().getId().equals(userInfoListingModel.getId())).count() == 0).forEach(userInfoListingModel -> {
|
||||||
|
UserDatasetProfile userDatasetProfile1 = new UserDatasetProfile();
|
||||||
|
userDatasetProfile1.setDatasetProfile(entity);
|
||||||
|
UserInfo userInfo1 = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userInfoListingModel.getId());
|
||||||
|
userDatasetProfile1.setUser(userInfo1);
|
||||||
|
userDatasetProfile1.setRole(1);
|
||||||
|
apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
entity.getUsers().stream().filter(userDatasetProfile -> model.getUsers().stream().filter(userInfoListingModel -> userDatasetProfile.getUser().getId().equals(userInfoListingModel.getId())).count() == 0).forEach(userDatasetProfile -> {
|
||||||
|
userDatasetProfile.setRole(2);
|
||||||
|
apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveUsers(DatasetProfile entity, eu.eudat.models.data.admin.composite.DatasetProfile model) {
|
||||||
|
if (entity.getUsers() != null && !entity.getUsers().isEmpty()) {
|
||||||
|
model.setUsers(entity.getUsers().stream().filter(userDatasetProfile -> userDatasetProfile.getRole() < 2).map(userDatasetProfile -> {
|
||||||
|
UserInfoListingModel userInfoListingModel = new UserInfoListingModel();
|
||||||
|
userInfoListingModel.setId(userDatasetProfile.getUser().getId());
|
||||||
|
userInfoListingModel.setName(userDatasetProfile.getUser().getName());
|
||||||
|
userInfoListingModel.setEmail(userDatasetProfile.getUser().getEmail());
|
||||||
|
userInfoListingModel.setRole(userDatasetProfile.getRole());
|
||||||
|
return userInfoListingModel;
|
||||||
|
}).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue