Some fixes for import

deploy_packages_to_gitea
Jens Pelzetter 2023-01-12 19:01:03 +01:00
parent 3a9a065f50
commit 610b050ac5
8 changed files with 99 additions and 264 deletions

View File

@ -41,7 +41,6 @@ import javax.persistence.NoResultException;
public class CategorizationImExporter
extends AbstractEntityImExporter<Categorization> {
@Inject
private CategorizationRepository categoriationRepo;
@ -68,6 +67,11 @@ public class CategorizationImExporter
return categoriationRepo.findByUuid(uuid);
}
@Override
protected void saveImportedEntity(final Categorization entity) {
entityManager.merge(entity);
}
@Override
protected void updateExistingEntity(
final Categorization existingEntity, final Categorization importedEntity
@ -107,11 +111,6 @@ public class CategorizationImExporter
entityManager.merge(existingEntity);
}
@Override
protected void saveImportedEntity(final Categorization entity) {
entityManager.merge(entity);
}
@Override
protected Categorization reloadEntity(final Categorization entity) {
try {

View File

@ -119,32 +119,6 @@ public class CategoryImExporter extends AbstractEntityImExporter<Category> {
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(
existingEntity.getParentCategory(),
importedEntity.getParentCategory()
@ -169,24 +143,18 @@ public class CategoryImExporter extends AbstractEntityImExporter<Category> {
existingEntity.getSubCategories(),
importedEntity.getSubCategories()
)) {
final Set<Category> subCategoriesToRemove = existingEntity
final Set<Category> subCategoriesToAdd = importedEntity
.getSubCategories()
.stream()
.filter(
subCat -> !importedEntity.getSubCategories().contains(
subCat
category -> !existingEntity.getSubCategories().contains(
category
)
)
.collect(Collectors.toSet());
for (final Category toRemove : subCategoriesToRemove) {
try {
categoryManager.removeObjectFromCategory(
toRemove, existingEntity
);
} catch (ObjectNotAssignedToCategoryException ex) {
throw new UnexpectedErrorException(ex);
}
for(final Category category : subCategoriesToAdd) {
existingEntity.addSubCategory(category);
}
}

View File

@ -98,13 +98,10 @@ public class DomainImExporter extends AbstractEntityImExporter<Domain> {
existingEntity.getDescription(),
importedEntity.getDescription()
)) {
for (final Map.Entry<Locale, String> entry : importedEntity
.getDescription().getValues().entrySet()) {
syncLocalizedStrings(
importedEntity.getDescription(),
existingEntity.getDescription()
);
}
syncLocalizedStrings(
importedEntity.getDescription(),
existingEntity.getDescription()
);
}
if (!Objects.equals(
@ -130,18 +127,6 @@ public class DomainImExporter extends AbstractEntityImExporter<Domain> {
.stream()
.filter(owner -> !existingEntity.getOwners().contains(owner))
.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) {
domainManager.addDomainOwner(toAdd.getOwner(),

View File

@ -23,8 +23,6 @@ import org.libreccm.imexport.Processes;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
@ -83,44 +81,6 @@ public class GroupImExporter extends AbstractEntityImExporter<Group> {
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);
}

View File

@ -40,6 +40,9 @@ import javax.persistence.NoResultException;
public class GroupMembershipImExporter
extends AbstractEntityImExporter<GroupMembership> {
@Inject
private GroupManager groupManager;
@Inject
private GroupMembershipRepository groupMembershipRepo;
@ -80,7 +83,45 @@ public class GroupMembershipImExporter
final GroupMembership existingEntity,
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

View File

@ -127,130 +127,6 @@ public class RoleImExporter extends AbstractEntityImExporter<Role> {
}
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

View File

@ -82,7 +82,20 @@ public class RoleMembershipImExporter
final RoleMembership existingEntity,
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

View File

@ -71,7 +71,8 @@ public class WorkflowImExporter extends AbstractEntityImExporter<Workflow> {
final Workflow existingEntity,
final Workflow importedEntity
) {
if (existingEntity.isAbstractWorkflow() != importedEntity.isAbstractWorkflow()) {
if (existingEntity.isAbstractWorkflow() != importedEntity
.isAbstractWorkflow()) {
existingEntity.setAbstractWorkflow(
importedEntity.isAbstractWorkflow()
);
@ -129,22 +130,14 @@ public class WorkflowImExporter extends AbstractEntityImExporter<Workflow> {
existingEntity.getTasks(),
importedEntity.getTasks()
)) {
final Set<Task> tasksToRemove = existingEntity
.getTasks()
.stream()
.filter(task -> !importedEntity.getTasks().contains(task))
.collect(Collectors.toSet());
final Set<Task> tasksToAdd = importedEntity
.getTasks()
.stream( )
.stream()
.filter(task -> !existingEntity.getTasks().contains(task))
.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);
}
}