Skip to content

Commit

Permalink
more code to result objects page
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Jan 12, 2023
1 parent 952ca4d commit b133cd7
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,13 @@ public class SearchFactory {
ItemPath.create(AuditEventRecordType.F_REFERENCE),
ItemPath.create(AuditEventRecordType.F_TASK_IDENTIFIER)
));

SEARCHABLE_OBJECTS.put(SimulationResultProcessedObjectType.class, Arrays.asList(
ItemPath.create(SimulationResultProcessedObjectType.F_NAME),
ItemPath.create(SimulationResultProcessedObjectType.F_TYPE),
ItemPath.create(SimulationResultProcessedObjectType.F_OID),
ItemPath.create(SimulationResultProcessedObjectType.F_STATE)
));
}

private static final Map<Class<?>, List<ItemPath>> FIXED_SEARCH_ITEMS = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,15 @@

package com.evolveum.midpoint.gui.impl.page.admin.simulation;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
import org.jetbrains.annotations.NotNull;

import com.evolveum.midpoint.authentication.api.authorization.AuthorizationAction;
import com.evolveum.midpoint.authentication.api.authorization.PageDescriptor;
import com.evolveum.midpoint.authentication.api.authorization.Url;
import com.evolveum.midpoint.common.Utils;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.web.page.admin.PageAdmin;
Expand All @@ -32,7 +31,6 @@
@Url(mountUrl = "/admin/simulations/result/${RESULT_OID}/objects"),
@Url(mountUrl = "/admin/simulations/result/${RESULT_OID}/tag/${TAG_OID}")
},
encoder = PageParametersEncoder.class,
// todo authorizations
action = {
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_SIMULATIONS_ALL_URL,
Expand Down Expand Up @@ -68,7 +66,17 @@ private void initLayout() {
@Override
protected @NotNull String getSimulationResultOid() {
String oid = getPageParameterResultOid();
if (StringUtils.isEmpty(oid)) {
if (!Utils.isPrismObjectOidValid(oid)) {
throw new RestartResponseException(PageError404.class);
}

return oid;
}

@Override
protected String getTagOid() {
String oid = getPageParameterTagOid();
if (!Utils.isPrismObjectOidValid(oid)) {
throw new RestartResponseException(PageError404.class);
}

Expand All @@ -83,12 +91,17 @@ private String getPageParameterResultOid() {
return params.get(PAGE_PARAMETER_RESULT_OID).toString();
}

private String getPageParameterTagOid() {
PageParameters params = getPageParameters();
return params.get(PAGE_PARAMETER_TAG_OID).toString();
}

@Override
protected IModel<String> createPageTitleModel() {
return () -> {
String oid = getPageParameterResultOid();

if (StringUtils.isEmpty(oid)) {
if (!Utils.isPrismObjectOidValid(oid)) {
throw new RestartResponseException(PageError404.class);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ protected ISelectableDataProvider<SelectableBean<SimulationResultProcessedObject
protected @NotNull String getSimulationResultOid() {
return ProcessedObjectsPanel.this.getSimulationResultOid();
}

@Override
protected String getTagOid() {
return ProcessedObjectsPanel.this.getTagOid();
}
};
}

Expand All @@ -62,6 +67,10 @@ protected String getSimulationResultOid() {
return null;
}

protected String getTagOid() {
return null;
}

@Override
public List<SimulationResultProcessedObjectType> getSelectedRealObjects() {
return getSelectedObjects().stream().map(o -> o.getValue()).collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@

package com.evolveum.midpoint.gui.impl.page.admin.simulation;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.model.IModel;
import org.jetbrains.annotations.NotNull;

import com.evolveum.midpoint.gui.impl.component.search.Search;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.builder.S_FilterExit;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.web.component.data.SelectableBeanContainerDataProvider;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationResultProcessedObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SimulationResultType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TagType;

/**
* Created by Viliam Repan (lazyman).
Expand All @@ -28,16 +32,28 @@ public ProcessedObjectsProvider(Component component, @NotNull IModel<Search<Simu

@Override
protected ObjectQuery getCustomizeContentQuery() {
String oid = getSimulationResultOid();
String resultOid = getSimulationResultOid();

return getPrismContext().queryFor(SimulationResultProcessedObjectType.class)
S_FilterExit builder = getPrismContext().queryFor(SimulationResultProcessedObjectType.class)
.ownedBy(SimulationResultType.class, SimulationResultType.F_PROCESSED_OBJECT)
.id(oid)
.build();
.id(resultOid);

String tagOid = getTagOid();
if (StringUtils.isNotEmpty(tagOid)) {
builder = builder.and()
// todo change to F_TAG_REF
.ref(SimulationResultProcessedObjectType.F_TYPE, TagType.COMPLEX_TYPE, SchemaConstants.ORG_DEFAULT, tagOid).endBlock();
}

return builder.build();
}

@NotNull
protected String getSimulationResultOid() {
return null;
}

protected String getTagOid() {
return null;
}
}

0 comments on commit b133cd7

Please sign in to comment.