Some fixes for import
parent
3a9a065f50
commit
610b050ac5
|
|
@ -41,7 +41,6 @@ import javax.persistence.NoResultException;
|
||||||
public class CategorizationImExporter
|
public class CategorizationImExporter
|
||||||
extends AbstractEntityImExporter<Categorization> {
|
extends AbstractEntityImExporter<Categorization> {
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private CategorizationRepository categoriationRepo;
|
private CategorizationRepository categoriationRepo;
|
||||||
|
|
||||||
|
|
@ -68,6 +67,11 @@ public class CategorizationImExporter
|
||||||
return categoriationRepo.findByUuid(uuid);
|
return categoriationRepo.findByUuid(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void saveImportedEntity(final Categorization entity) {
|
||||||
|
entityManager.merge(entity);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateExistingEntity(
|
protected void updateExistingEntity(
|
||||||
final Categorization existingEntity, final Categorization importedEntity
|
final Categorization existingEntity, final Categorization importedEntity
|
||||||
|
|
@ -107,11 +111,6 @@ public class CategorizationImExporter
|
||||||
entityManager.merge(existingEntity);
|
entityManager.merge(existingEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void saveImportedEntity(final Categorization entity) {
|
|
||||||
entityManager.merge(entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Categorization reloadEntity(final Categorization entity) {
|
protected Categorization reloadEntity(final Categorization entity) {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -119,32 +119,6 @@ public class CategoryImExporter extends AbstractEntityImExporter<Category> {
|
||||||
existingEntity.setName(importedEntity.getName());
|
existingEntity.setName(importedEntity.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Objects.equals(
|
|
||||||
existingEntity.getObjects(),
|
|
||||||
importedEntity.getObjects()
|
|
||||||
)) {
|
|
||||||
final Set<Categorization> categorizationsToRemove = existingEntity
|
|
||||||
.getObjects()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
categorization -> !importedEntity.getObjects().contains(
|
|
||||||
categorization
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (Categorization toRemove : categorizationsToRemove) {
|
|
||||||
try {
|
|
||||||
categoryManager.removeObjectFromCategory(
|
|
||||||
toRemove.getCategorizedObject(),
|
|
||||||
existingEntity
|
|
||||||
);
|
|
||||||
} catch (ObjectNotAssignedToCategoryException ex) {
|
|
||||||
throw new UnexpectedErrorException(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Objects.equals(
|
if (!Objects.equals(
|
||||||
existingEntity.getParentCategory(),
|
existingEntity.getParentCategory(),
|
||||||
importedEntity.getParentCategory()
|
importedEntity.getParentCategory()
|
||||||
|
|
@ -169,24 +143,18 @@ public class CategoryImExporter extends AbstractEntityImExporter<Category> {
|
||||||
existingEntity.getSubCategories(),
|
existingEntity.getSubCategories(),
|
||||||
importedEntity.getSubCategories()
|
importedEntity.getSubCategories()
|
||||||
)) {
|
)) {
|
||||||
final Set<Category> subCategoriesToRemove = existingEntity
|
final Set<Category> subCategoriesToAdd = importedEntity
|
||||||
.getSubCategories()
|
.getSubCategories()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(
|
.filter(
|
||||||
subCat -> !importedEntity.getSubCategories().contains(
|
category -> !existingEntity.getSubCategories().contains(
|
||||||
subCat
|
category
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
for (final Category toRemove : subCategoriesToRemove) {
|
for(final Category category : subCategoriesToAdd) {
|
||||||
try {
|
existingEntity.addSubCategory(category);
|
||||||
categoryManager.removeObjectFromCategory(
|
|
||||||
toRemove, existingEntity
|
|
||||||
);
|
|
||||||
} catch (ObjectNotAssignedToCategoryException ex) {
|
|
||||||
throw new UnexpectedErrorException(ex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,14 +98,11 @@ public class DomainImExporter extends AbstractEntityImExporter<Domain> {
|
||||||
existingEntity.getDescription(),
|
existingEntity.getDescription(),
|
||||||
importedEntity.getDescription()
|
importedEntity.getDescription()
|
||||||
)) {
|
)) {
|
||||||
for (final Map.Entry<Locale, String> entry : importedEntity
|
|
||||||
.getDescription().getValues().entrySet()) {
|
|
||||||
syncLocalizedStrings(
|
syncLocalizedStrings(
|
||||||
importedEntity.getDescription(),
|
importedEntity.getDescription(),
|
||||||
existingEntity.getDescription()
|
existingEntity.getDescription()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!Objects.equals(
|
if (!Objects.equals(
|
||||||
existingEntity.getVersion(),
|
existingEntity.getVersion(),
|
||||||
|
|
@ -130,18 +127,6 @@ public class DomainImExporter extends AbstractEntityImExporter<Domain> {
|
||||||
.stream()
|
.stream()
|
||||||
.filter(owner -> !existingEntity.getOwners().contains(owner))
|
.filter(owner -> !existingEntity.getOwners().contains(owner))
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
final Set<DomainOwnership> ownersToRemove = existingEntity
|
|
||||||
.getOwners()
|
|
||||||
.stream()
|
|
||||||
.filter(owner -> !importedEntity.getOwners().contains(owner))
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (final DomainOwnership toRemove : ownersToRemove) {
|
|
||||||
domainManager.removeDomainOwner(
|
|
||||||
toRemove.getOwner(),
|
|
||||||
existingEntity
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (final DomainOwnership toAdd : ownersToAdd) {
|
for (final DomainOwnership toAdd : ownersToAdd) {
|
||||||
domainManager.addDomainOwner(toAdd.getOwner(),
|
domainManager.addDomainOwner(toAdd.getOwner(),
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,6 @@ import org.libreccm.imexport.Processes;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
|
@ -83,44 +81,6 @@ public class GroupImExporter extends AbstractEntityImExporter<Group> {
|
||||||
existingEntity.setName(importedEntity.getName());
|
existingEntity.setName(importedEntity.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Objects.equals(
|
|
||||||
existingEntity.getMemberships(),
|
|
||||||
importedEntity.getMemberships()
|
|
||||||
)) {
|
|
||||||
final Set<GroupMembership> membershipsToRemove = existingEntity
|
|
||||||
.getMemberships()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
membership -> !importedEntity.getMemberships().contains(
|
|
||||||
membership
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
final Set<GroupMembership> membershipsToAdd = importedEntity
|
|
||||||
.getMemberships()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
membership -> !existingEntity.getMemberships().contains(
|
|
||||||
membership
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (final GroupMembership membership : membershipsToRemove) {
|
|
||||||
groupManager.removeMemberFromGroup(
|
|
||||||
membership.getMember(),
|
|
||||||
existingEntity
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
for(final GroupMembership membership: membershipsToAdd) {
|
|
||||||
groupManager.addMemberToGroup(
|
|
||||||
membership.getMember(),
|
|
||||||
existingEntity
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
groupRepository.save(existingEntity);
|
groupRepository.save(existingEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,9 @@ import javax.persistence.NoResultException;
|
||||||
public class GroupMembershipImExporter
|
public class GroupMembershipImExporter
|
||||||
extends AbstractEntityImExporter<GroupMembership> {
|
extends AbstractEntityImExporter<GroupMembership> {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private GroupManager groupManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private GroupMembershipRepository groupMembershipRepo;
|
private GroupMembershipRepository groupMembershipRepo;
|
||||||
|
|
||||||
|
|
@ -80,7 +83,45 @@ public class GroupMembershipImExporter
|
||||||
final GroupMembership existingEntity,
|
final GroupMembership existingEntity,
|
||||||
final GroupMembership importedEntity
|
final GroupMembership importedEntity
|
||||||
) {
|
) {
|
||||||
// No update, update is handled by GroupImporter
|
if (!Objects.equals(
|
||||||
|
existingEntity.getGroup(),
|
||||||
|
importedEntity.getGroup()
|
||||||
|
) && !Objects.equals(
|
||||||
|
existingEntity.getMember(),
|
||||||
|
importedEntity.getMember()
|
||||||
|
)) {
|
||||||
|
final Group oldGroup = existingEntity.getGroup();
|
||||||
|
final User oldMember = existingEntity.getMember();
|
||||||
|
final Group newGroup = importedEntity.getGroup();
|
||||||
|
final User newMember = importedEntity.getMember();
|
||||||
|
|
||||||
|
groupManager.removeMemberFromGroup(oldMember, oldGroup);
|
||||||
|
groupManager.addMemberToGroup(newMember, newGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Objects.equals(
|
||||||
|
existingEntity.getGroup(),
|
||||||
|
importedEntity.getGroup()
|
||||||
|
)) {
|
||||||
|
final Group oldGroup = existingEntity.getGroup();
|
||||||
|
final Group newGroup = importedEntity.getGroup();
|
||||||
|
final User member = existingEntity.getMember();
|
||||||
|
|
||||||
|
groupManager.removeMemberFromGroup(member, oldGroup);
|
||||||
|
groupManager.addMemberToGroup(member, newGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Objects.equals(
|
||||||
|
existingEntity.getMember(),
|
||||||
|
importedEntity.getMember()
|
||||||
|
)) {
|
||||||
|
final User oldMember = existingEntity.getMember();
|
||||||
|
final User newMember = importedEntity.getMember();
|
||||||
|
final Group group = existingEntity.getGroup();
|
||||||
|
|
||||||
|
groupManager.removeMemberFromGroup(oldMember, group);
|
||||||
|
groupManager.addMemberToGroup(newMember, group);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -127,130 +127,6 @@ public class RoleImExporter extends AbstractEntityImExporter<Role> {
|
||||||
}
|
}
|
||||||
|
|
||||||
roleRepository.save(existingEntity);
|
roleRepository.save(existingEntity);
|
||||||
|
|
||||||
if (!Objects.equals(
|
|
||||||
existingEntity.getMemberships(),
|
|
||||||
importedEntity.getMemberships()
|
|
||||||
)) {
|
|
||||||
final Set<RoleMembership> membershipsToRemove = existingEntity
|
|
||||||
.getMemberships()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
membership -> !importedEntity.getMemberships().contains(
|
|
||||||
membership
|
|
||||||
)
|
|
||||||
).collect(Collectors.toSet());
|
|
||||||
final Set<RoleMembership> membershipsToAdd = importedEntity
|
|
||||||
.getMemberships()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
membership -> !existingEntity.getMemberships().contains(
|
|
||||||
membership
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (final RoleMembership membership : membershipsToRemove) {
|
|
||||||
roleManager.removeRoleFromParty(
|
|
||||||
existingEntity,
|
|
||||||
membership.getMember()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (final RoleMembership membership : membershipsToAdd) {
|
|
||||||
roleManager.assignRoleToParty(
|
|
||||||
existingEntity,
|
|
||||||
membership.getMember()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Objects.equals(
|
|
||||||
existingEntity.getPermissions(),
|
|
||||||
importedEntity.getPermissions()
|
|
||||||
)) {
|
|
||||||
final Set<Permission> permissionsToRemove = existingEntity
|
|
||||||
.getPermissions()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
permission -> !importedEntity.getPermissions().contains(
|
|
||||||
permission
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
final Set<Permission> permissionToAdd = importedEntity
|
|
||||||
.getPermissions()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
permission -> !existingEntity.getPermissions().contains(
|
|
||||||
permission
|
|
||||||
)
|
|
||||||
).collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (final Permission permission : permissionsToRemove) {
|
|
||||||
if (permission.getObject() == null) {
|
|
||||||
permissionManager.revokePrivilege(
|
|
||||||
permission.getGrantedPrivilege(),
|
|
||||||
existingEntity
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
permissionManager.revokePrivilege(
|
|
||||||
permission.getGrantedPrivilege(),
|
|
||||||
existingEntity,
|
|
||||||
permission.getObject()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (final Permission permission : permissionToAdd) {
|
|
||||||
if (permission.getObject() == null) {
|
|
||||||
permissionManager.grantPrivilege(
|
|
||||||
permission.getGrantedPrivilege(),
|
|
||||||
existingEntity
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
permissionManager.grantPrivilege(
|
|
||||||
permission.getGrantedPrivilege(),
|
|
||||||
existingEntity,
|
|
||||||
permission.getObject()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Objects.equals(
|
|
||||||
existingEntity.getAssignedTasks(),
|
|
||||||
importedEntity.getAssignedTasks()
|
|
||||||
)) {
|
|
||||||
final Set<TaskAssignment> assignmentsToRemove = existingEntity
|
|
||||||
.getAssignedTasks()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
assignment -> !importedEntity.getAssignedTasks().contains(
|
|
||||||
assignment
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
final Set<TaskAssignment> assignmentsToAdd = importedEntity
|
|
||||||
.getAssignedTasks()
|
|
||||||
.stream()
|
|
||||||
.filter(
|
|
||||||
assignment -> !existingEntity.getAssignedTasks().contains(
|
|
||||||
assignment
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for(final TaskAssignment assignment : assignmentsToRemove) {
|
|
||||||
taskManager.retractTask(assignment.getTask(), existingEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
for(final TaskAssignment assignment : assignmentsToAdd) {
|
|
||||||
taskManager.assignTask(assignment.getTask(), existingEntity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,20 @@ public class RoleMembershipImExporter
|
||||||
final RoleMembership existingEntity,
|
final RoleMembership existingEntity,
|
||||||
final RoleMembership importedEntity
|
final RoleMembership importedEntity
|
||||||
) {
|
) {
|
||||||
// Nothing
|
if (!Objects.equals(
|
||||||
|
existingEntity.getRole(),
|
||||||
|
importedEntity.getRole()
|
||||||
|
)) {
|
||||||
|
existingEntity.setRole(importedEntity.getRole());
|
||||||
|
}
|
||||||
|
if (!Objects.equals(
|
||||||
|
existingEntity.getMember(),
|
||||||
|
importedEntity.getMember()
|
||||||
|
)) {
|
||||||
|
existingEntity.setMember(importedEntity.getMember());
|
||||||
|
}
|
||||||
|
|
||||||
|
membershipRepo.save(existingEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,8 @@ public class WorkflowImExporter extends AbstractEntityImExporter<Workflow> {
|
||||||
final Workflow existingEntity,
|
final Workflow existingEntity,
|
||||||
final Workflow importedEntity
|
final Workflow importedEntity
|
||||||
) {
|
) {
|
||||||
if (existingEntity.isAbstractWorkflow() != importedEntity.isAbstractWorkflow()) {
|
if (existingEntity.isAbstractWorkflow() != importedEntity
|
||||||
|
.isAbstractWorkflow()) {
|
||||||
existingEntity.setAbstractWorkflow(
|
existingEntity.setAbstractWorkflow(
|
||||||
importedEntity.isAbstractWorkflow()
|
importedEntity.isAbstractWorkflow()
|
||||||
);
|
);
|
||||||
|
|
@ -129,21 +130,13 @@ public class WorkflowImExporter extends AbstractEntityImExporter<Workflow> {
|
||||||
existingEntity.getTasks(),
|
existingEntity.getTasks(),
|
||||||
importedEntity.getTasks()
|
importedEntity.getTasks()
|
||||||
)) {
|
)) {
|
||||||
final Set<Task> tasksToRemove = existingEntity
|
|
||||||
.getTasks()
|
|
||||||
.stream()
|
|
||||||
.filter(task -> !importedEntity.getTasks().contains(task))
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
final Set<Task> tasksToAdd = importedEntity
|
final Set<Task> tasksToAdd = importedEntity
|
||||||
.getTasks()
|
.getTasks()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(task -> !existingEntity.getTasks().contains(task))
|
.filter(task -> !existingEntity.getTasks().contains(task))
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
for(final Task task : tasksToRemove) {
|
|
||||||
taskManager.removeTask(existingEntity, task);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (final Task task : tasksToAdd) {
|
for (final Task task : tasksToAdd) {
|
||||||
taskManager.addTask(existingEntity, task);
|
taskManager.addTask(existingEntity, task);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue