Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Sep 29, 2022
2 parents 4ad4ea9 + e792e02 commit 5c111ee
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 8 deletions.
2 changes: 1 addition & 1 deletion gui/admin-gui/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@
<groupId>com.evolveum.midpoint.model</groupId>
<artifactId>model-impl</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.evolveum.midpoint.model</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanelWithDetailsPanel;
import com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder;
import com.evolveum.midpoint.gui.impl.prism.wrapper.PrismReferenceValueWrapperImpl;
import com.evolveum.midpoint.model.impl.schema.transform.TransformableContainerDefinition;
import com.evolveum.midpoint.model.impl.schema.transform.TransformableReferenceDefinition;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.path.ObjectReferencePathSegment;
Expand Down Expand Up @@ -652,11 +650,7 @@ protected PrismContainerDefinition<AssignmentType> getTypeDefinitionForSearch()
} else {
// We have more concrete assignment type, we should replace targetRef definition
// with one with concrete assignment type.
var transformed = TransformableContainerDefinition.of(orig);
var targetRef = TransformableReferenceDefinition.of(orig.getComplexTypeDefinition().findReferenceDefinition(AssignmentType.F_TARGET_REF));
targetRef.setTargetTypeName(getAssignmentType());
transformed.getComplexTypeDefinition().replaceDefinition(AssignmentType.F_TARGET_REF, targetRef);
searchDefinition = transformed;
searchDefinition = getPageBase().getModelInteractionService().assignmentTypeDefinitionWithConcreteTargetRefType(orig, getAssignmentType());
}

return searchDefinition;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -545,4 +545,16 @@ void expandConfigurationObject(
* The method does not require any authorizations. This is how it was before 4.6, and it remains so for the near future.
*/
void switchToBackground(Task task, OperationResult result);

/**
* Returns Container Definition of Assignment Type with target type of assignment replaced by more concrete situation
*
* This allows for using more specific definition when searching for definitions for dereference, in GUI search or columns
* where we are sure (on other criteria) only assignment types we are processing have concrete target type.
*
* @param orig Original definition of Assignment Type
* @param targetType Concrete target type
*/
PrismContainerDefinition<AssignmentType> assignmentTypeDefinitionWithConcreteTargetRefType(
PrismContainerDefinition<AssignmentType> orig, QName targetType);
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
import com.evolveum.midpoint.model.impl.lens.projector.mappings.MappingEvaluator;
import com.evolveum.midpoint.model.impl.schema.transform.TransformableContainerDefinition;
import com.evolveum.midpoint.model.impl.schema.transform.TransformableObjectDefinition;
import com.evolveum.midpoint.model.impl.schema.transform.TransformableReferenceDefinition;
import com.evolveum.midpoint.model.impl.security.GuiProfileCompiler;
import com.evolveum.midpoint.model.impl.security.SecurityHelper;
import com.evolveum.midpoint.model.impl.visualizer.Visualizer;
Expand Down Expand Up @@ -2152,4 +2153,15 @@ public void switchToBackground(Task task, OperationResult result) {
taskManager.switchToBackground(task, result);
result.setBackgroundTaskOid(task.getOid());
}

@Override
public PrismContainerDefinition<AssignmentType> assignmentTypeDefinitionWithConcreteTargetRefType(
PrismContainerDefinition<AssignmentType> orig, QName targetType) {
var transformed = TransformableContainerDefinition.of(orig);
var targetRef = TransformableReferenceDefinition.of(orig.getComplexTypeDefinition().findReferenceDefinition(AssignmentType.F_TARGET_REF));
targetRef.setTargetTypeName(targetType);
transformed.getComplexTypeDefinition().replaceDefinition(AssignmentType.F_TARGET_REF, targetRef);
return transformed;

}
}

0 comments on commit 5c111ee

Please sign in to comment.