Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/forgot-user…
Browse files Browse the repository at this point in the history
…name

* origin/master:
  fix for success login (schrodinger tests)
  MID-8842 ninja - improved logging
  Add support for ObjectSetType.archetypeRef
  MID-8842 ninja - deprecated resource elements processor (manual)
  MID-8842 ninja - added deprecation to element resource/synchronization/objectSynchronization/reaction
  MID-8842 ninja - console colors fix
  sqale: make resource/super/resourceRef searchable
  tasks/affectedObjects: Schema changes based on code review
  sqale: Fixed incorrect reference target in FocusIdentitySource from Focus to Resource
  Fix failing TestRunAs
  adding toast for recorded but unsaved changes on wizard panels
  MID-8928: Added entity mapping and search tests for task affects indexing
  MID-8928: Updated repository schema for tasks / affects indexes
  Schema for task affected objects.
  task affected objects - Started mapping repo objects
  Refactored out Aggregate implementation, made part of Repository API
  Working proof of Aggregate searches in repository

# Conflicts:
#	gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java
  • Loading branch information
katkav committed Aug 2, 2023
2 parents ccc33be + c4de637 commit 114987f
Show file tree
Hide file tree
Showing 71 changed files with 2,391 additions and 436 deletions.
44 changes: 44 additions & 0 deletions config/sql/native-new/postgres-new-upgrade.sql
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,50 @@ call apply_change(15, $aa$
ALTER TABLE m_resource ADD abstract BOOLEAN;
$aa$);

-- Task Affected Indexing (Changes to types)
call apply_change(16, $aa$
ALTER TYPE ContainerType ADD VALUE IF NOT EXISTS 'AFFECTED_RESOURCE_OBJECTS' AFTER 'ACCESS_CERTIFICATION_WORK_ITEM';
ALTER TYPE ContainerType ADD VALUE IF NOT EXISTS 'AFFECTED_OBJECTS' AFTER 'AFFECTED_RESOURCE_OBJECTS';
$aa)

-- Task Affected Indexing (tables)

call apply_change(17, $aa$
CREATE TABLE m_task_affected_resource_objects (
ownerOid UUID NOT NULL REFERENCES m_object_oid(oid) ON DELETE CASCADE,
containerType ContainerType GENERATED ALWAYS AS ('AFFECTED_RESOURCE_OBJECTS') STORED
CHECK (containerType = 'AFFECTED_RESOURCE_OBJECTS'),
objectClassId INTEGER REFERENCES m_uri(id),
resourceRefTargetOid UUID,
resourceRefTargetType ObjectType,
resourceRefRelationId INTEGER REFERENCES m_uri(id),
intent TEXT,
kind ShadowKindType,
PRIMARY KEY (ownerOid, cid)
) INHERITS(m_container);

CREATE TABLE m_task_affected_objects (
ownerOid UUID NOT NULL REFERENCES m_object_oid(oid) ON DELETE CASCADE,
containerType ContainerType GENERATED ALWAYS AS ('AFFECTED_OBJECTS') STORED
CHECK (containerType = 'AFFECTED_OBJECTS'),
type ObjectType,
archetypeRefTargetOid UUID,
archetypeRefTargetType ObjectType,
archetypeRefRelationId INTEGER REFERENCES m_uri(id),
PRIMARY KEY (ownerOid, cid)
) INHERITS(m_container);

$aa$)


-- Resource/super/resourceRef Indexing (tables)
call apply_change(18, $aa$
ALTER TABLE m_resource
ADD COLUMN superRefTargetOid UUID,
ADD COLUMN superRefTargetType ObjectType,
ADD COLUMN superRefRelationId INTEGER REFERENCES m_uri(id);
$aa$)
---
-- WRITE CHANGES ABOVE ^^
-- IMPORTANT: update apply_change number at the end of postgres-new.sql
-- to match the number used in the last change here!
Expand Down
32 changes: 30 additions & 2 deletions config/sql/native-new/postgres-new.sql
Original file line number Diff line number Diff line change
Expand Up @@ -873,7 +873,10 @@ CREATE TABLE m_resource (
connectorRefTargetType ObjectType,
connectorRefRelationId INTEGER REFERENCES m_uri(id),
template BOOLEAN,
abstract BOOLEAN
abstract BOOLEAN,
superRefTargetOid UUID,
superRefTargetType ObjectType,
superRefRelationId INTEGER REFERENCES m_uri(id)
)
INHERITS (m_assignment_holder);

Expand Down Expand Up @@ -1308,6 +1311,31 @@ CREATE INDEX m_task_ext_idx ON m_task USING gin(ext);
CREATE INDEX m_task_fullTextInfo_idx ON m_task USING gin(fullTextInfo gin_trgm_ops);
CREATE INDEX m_task_createTimestamp_idx ON m_task (createTimestamp);
CREATE INDEX m_task_modifyTimestamp_idx ON m_task (modifyTimestamp);

CREATE TABLE m_task_affected_resource_objects (
ownerOid UUID NOT NULL REFERENCES m_object_oid(oid) ON DELETE CASCADE,
containerType ContainerType GENERATED ALWAYS AS ('AFFECTED_RESOURCE_OBJECTS') STORED
CHECK (containerType = 'AFFECTED_RESOURCE_OBJECTS'),
objectClassId INTEGER REFERENCES m_uri(id),
resourceRefTargetOid UUID,
resourceRefTargetType ObjectType,
resourceRefRelationId INTEGER REFERENCES m_uri(id),
intent TEXT,
kind ShadowKindType,
PRIMARY KEY (ownerOid, cid)
) INHERITS(m_container);

CREATE TABLE m_task_affected_objects (
ownerOid UUID NOT NULL REFERENCES m_object_oid(oid) ON DELETE CASCADE,
containerType ContainerType GENERATED ALWAYS AS ('AFFECTED_OBJECTS') STORED
CHECK (containerType = 'AFFECTED_OBJECTS'),
type ObjectType,
archetypeRefTargetOid UUID,
archetypeRefTargetType ObjectType,
archetypeRefRelationId INTEGER REFERENCES m_uri(id),
PRIMARY KEY (ownerOid, cid)
) INHERITS(m_container);

-- endregion

-- region cases
Expand Down Expand Up @@ -2087,4 +2115,4 @@ END $$;
-- This is important to avoid applying any change more than once.
-- Also update SqaleUtils.CURRENT_SCHEMA_CHANGE_NUMBER
-- repo/repo-sqale/src/main/java/com/evolveum/midpoint/repo/sqale/SqaleUtils.java
call apply_change(15, $$ SELECT 1 $$, true);
call apply_change(18, $$ SELECT 1 $$, true);
Original file line number Diff line number Diff line change
Expand Up @@ -99,5 +99,7 @@ public interface PrismContainerValueWrapper<C extends Containerable> extends Pri
int size();

PrismContainerValue<C> getContainerValueApplyDelta() throws SchemaException;

Collection<ItemDelta> getDeltas() throws SchemaException;
}

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import static com.evolveum.midpoint.gui.api.page.PageBase.createStringResourceStatic;
import static com.evolveum.midpoint.schema.GetOperationOptions.createExecutionPhase;
import static com.evolveum.midpoint.schema.SelectorOptions.createCollection;
import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createObjectRef;
import static com.evolveum.midpoint.xml.ns._public.common.common_3.TaskExecutionStateType.RUNNABLE;
import static com.evolveum.midpoint.xml.ns._public.common.common_3.TaskSchedulingStateType.READY;

Expand All @@ -28,17 +27,6 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.prism.ItemStatus;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrgHistory;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRoleHistory;
import com.evolveum.midpoint.gui.impl.page.admin.service.PageServiceHistory;

import com.evolveum.midpoint.gui.impl.page.admin.user.PageUserHistory;

import com.evolveum.midpoint.gui.impl.page.login.module.PageLogin;
import com.evolveum.midpoint.web.security.MidPointAuthWebSession;
import com.evolveum.midpoint.web.component.dialog.Popupable;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -100,6 +88,7 @@
import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;
import com.evolveum.midpoint.gui.api.page.PageAdminLTE;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.prism.ItemStatus;
import com.evolveum.midpoint.gui.api.prism.wrapper.*;
import com.evolveum.midpoint.gui.impl.GuiChannel;
import com.evolveum.midpoint.gui.impl.component.data.provider.BaseSortableDataProvider;
Expand All @@ -121,14 +110,19 @@
import com.evolveum.midpoint.gui.impl.page.admin.objectcollection.PageObjectCollection;
import com.evolveum.midpoint.gui.impl.page.admin.objecttemplate.PageObjectTemplate;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrg;
import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrgHistory;
import com.evolveum.midpoint.gui.impl.page.admin.report.PageReport;
import com.evolveum.midpoint.gui.impl.page.admin.resource.PageResource;
import com.evolveum.midpoint.gui.impl.page.admin.resource.PageShadow;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRole;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRoleHistory;
import com.evolveum.midpoint.gui.impl.page.admin.service.PageService;
import com.evolveum.midpoint.gui.impl.page.admin.service.PageServiceHistory;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.PageSimulationResult;
import com.evolveum.midpoint.gui.impl.page.admin.task.PageTask;
import com.evolveum.midpoint.gui.impl.page.admin.user.PageUser;
import com.evolveum.midpoint.gui.impl.page.admin.user.PageUserHistory;
import com.evolveum.midpoint.gui.impl.page.login.module.PageLogin;
import com.evolveum.midpoint.gui.impl.page.self.PageOrgSelfProfile;
import com.evolveum.midpoint.gui.impl.page.self.PageRoleSelfProfile;
import com.evolveum.midpoint.gui.impl.page.self.PageServiceSelfProfile;
Expand All @@ -144,10 +138,7 @@
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.crypto.EncryptionException;
import com.evolveum.midpoint.prism.crypto.Protector;
import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.prism.delta.DeltaFactory;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.delta.PropertyDelta;
import com.evolveum.midpoint.prism.delta.*;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.path.ItemPathCollectionsUtil;
Expand Down Expand Up @@ -192,6 +183,7 @@
import com.evolveum.midpoint.web.component.data.SelectableDataTable;
import com.evolveum.midpoint.web.component.data.Table;
import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.input.DisplayableValueChoiceRenderer;
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
Expand All @@ -214,6 +206,7 @@
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerGroupDto;
import com.evolveum.midpoint.web.security.MidPointApplication;
import com.evolveum.midpoint.web.security.MidPointAuthWebSession;
import com.evolveum.midpoint.web.session.SessionStorage;
import com.evolveum.midpoint.web.util.DateValidator;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
Expand Down Expand Up @@ -5785,6 +5778,26 @@ public static <O extends ObjectType> String getLabelForType(Class<O> type, boole
return translateMessage(ObjectTypeUtil.createTypeDisplayInformation(type.getSimpleName(), startsWithUppercase));
}

public static void showToastForRecordedButUnsavedChanges(AjaxRequestTarget target, PrismContainerValueWrapper value) {
Collection<ItemDelta> deltas = List.of();
try {
deltas = value.getDeltas();
} catch (SchemaException e) {
//couldn't get deltas of items
}

if (!deltas.isEmpty()) {
new Toast()
.warning()
.title(PageBase.createStringResourceStatic("WebComponentUtil.recordedButUnsavedChanges.title").getString())
.icon("fa fa-exclamation")
.autohide(true)
.delay(5_000)
.body(PageBase.createStringResourceStatic("WebComponentUtil.recordedButUnsavedChanges.body").getString())
.show(target);
}
}

/**
* @deprecated See {@link com.evolveum.midpoint.gui.api.util.LocalizationUtil}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.evolveum.midpoint.gui.api.component.wizard.WizardStep;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.util.MappingDirection;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.component.wizard.WizardPanelHelper;
import com.evolveum.midpoint.gui.impl.page.admin.resource.ResourceDetailsModel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractPredefinedActivationMappingType;
Expand Down Expand Up @@ -117,12 +118,14 @@ private List<WizardStep> createInboundAttributeMappingSteps(IModel<PrismContaine
steps.add(new InboundActivationMappingMainConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showActivationTablePanel(target, MappingDirection.INBOUND);
}
});
steps.add(new InboundActivationMappingOptionalConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showActivationTablePanel(target, MappingDirection.INBOUND);
}
});
Expand All @@ -142,12 +145,14 @@ private List<WizardStep> createOutboundAttributeMappingSteps(IModel<PrismContain
steps.add(new OutboundActivationMappingMainConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showActivationTablePanel(target, MappingDirection.OUTBOUND);
}
});
steps.add(new OutboundActivationMappingOptionalConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showActivationTablePanel(target, MappingDirection.OUTBOUND);
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.util.ArrayList;
import java.util.List;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.component.wizard.WizardPanelHelper;
import com.evolveum.midpoint.gui.impl.page.admin.resource.ResourceDetailsModel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceObjectAssociationType;
Expand Down Expand Up @@ -57,6 +58,7 @@ private List<WizardStep> createAssociationsSteps(IModel<PrismContainerValueWrapp
valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showChoiceFragment(target, createTablePanel());
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.List;

import com.evolveum.midpoint.gui.api.util.MappingDirection;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.page.admin.resource.ResourceDetailsModel;

import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -18,7 +19,6 @@
import com.evolveum.midpoint.gui.api.component.wizard.WizardModel;
import com.evolveum.midpoint.gui.api.component.wizard.WizardPanel;
import com.evolveum.midpoint.gui.api.component.wizard.WizardStep;
import com.evolveum.midpoint.gui.api.factory.wrapper.WrapperContext;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.impl.component.wizard.AbstractWizardPanel;
import com.evolveum.midpoint.gui.impl.component.wizard.WizardPanelHelper;
Expand Down Expand Up @@ -93,12 +93,14 @@ private List<WizardStep> createInboundAttributeMappingSteps(IModel<PrismContaine
steps.add(new InboundMappingMainConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showTableFragment(target, MappingDirection.INBOUND);
}
});
steps.add(new InboundMappingOptionalConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showTableFragment(target, MappingDirection.INBOUND);
}
});
Expand All @@ -118,12 +120,14 @@ private List<WizardStep> createOutboundAttributeMappingSteps(IModel<PrismContain
steps.add(new OutboundMappingMainConfigurationStepPanel<>(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showTableFragment(target, MappingDirection.OUTBOUND);
}
});
steps.add(new OutboundMappingOptionalConfigurationStepPanel<>(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showTableFragment(target, MappingDirection.OUTBOUND);
}
});
Expand All @@ -136,13 +140,15 @@ private List<WizardStep> createNewAttributeOverrideSteps(
steps.add(new MainConfigurationStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showAttributeOverrides(target, selectedTable);
}
});

steps.add(new LimitationsStepPanel(getAssignmentHolderModel(), valueModel) {
@Override
protected void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, valueModel.getObject());
showAttributeOverrides(target, selectedTable);
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
package com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.objectType.correlation;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.impl.component.wizard.AbstractWizardPanel;
import com.evolveum.midpoint.gui.impl.component.wizard.WizardPanelHelper;
import com.evolveum.midpoint.gui.impl.page.admin.resource.ResourceDetailsModel;
Expand Down Expand Up @@ -37,6 +38,7 @@ protected void showTableForItemRefs(AjaxRequestTarget target, IModel<PrismContai
WizardPanelHelper<ItemsSubCorrelatorType, ResourceDetailsModel> helper = new WizardPanelHelper<>(getAssignmentHolderDetailsModel(), rowModel) {
@Override
public void onExitPerformed(AjaxRequestTarget target) {
WebComponentUtil.showToastForRecordedButUnsavedChanges(target, getValueModel().getObject());
showChoiceFragment(target, createTablePanel());
}
};
Expand Down

0 comments on commit 114987f

Please sign in to comment.