Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Apr 2, 2019
2 parents a7fbbcb + 4f1bc5e commit 430be50
Show file tree
Hide file tree
Showing 12 changed files with 515 additions and 364 deletions.
Expand Up @@ -17,13 +17,20 @@

import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismPropertyDefinition;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.PrismValue;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.task.api.TaskCategory;
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
Expand All @@ -34,7 +41,13 @@
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.roles.MemberOperationsHelper;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.midpoint.xml.ns._public.model.scripting_3.ActionExpressionType;
import com.evolveum.midpoint.xml.ns._public.model.scripting_3.ActionParameterValueType;
import com.evolveum.midpoint.xml.ns._public.model.scripting_3.SearchExpressionType;
import com.evolveum.prism.xml.ns._public.types_3.RawType;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
Expand All @@ -44,6 +57,7 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;

import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -118,9 +132,9 @@ public void onClick(AjaxRequestTarget target) {
if (selectedObjects == null || selectedObjects.size() == 0){
continue;
}
executeMemberOperation(memberPanel.getObjectType().getTypeQName(),
createInOidQuery(selectedObjects),
memberPanel.prepareDelta(), target);
executeMemberOperation(memberPanel.getAbstractRoleTypeObject(), getDefaultTargetType(),
createInOidQuery(selectedObjects), memberPanel.getRelationValue(),
memberPanel.getObjectType().getTypeQName(), target, getPageBase());
if (memberPanel.getObjectType().equals(ObjectTypes.ORG)){
orgPanelProcessed = true;
}
Expand Down Expand Up @@ -376,24 +390,12 @@ private boolean isAddButtonEnabled(){
return false;
}

protected void executeMemberOperation(QName type, ObjectQuery memberQuery,
ObjectDelta delta, AjaxRequestTarget target) {

Task operationalTask = getPageBase().createSimpleTask("Add.members");
OperationResult parentResult = operationalTask.getResult();

try {
WebComponentUtil.executeMemberOperation(operationalTask, type, memberQuery, delta, TaskCategory.EXECUTE_CHANGES, parentResult, getPageBase());
} catch (SchemaException e) {
parentResult.recordFatalError(parentResult.getOperation(), e);
LoggingUtils.logUnexpectedException(LOGGER,
"Failed to execute operation " + parentResult.getOperation(), e);
target.add(getPageBase().getFeedbackPanel());
}

target.add(getPageBase().getFeedbackPanel());
protected void executeMemberOperation(AbstractRoleType targetObject, QName targetType, ObjectQuery query,
QName relation, QName type, AjaxRequestTarget target, PageBase pageBase) {
MemberOperationsHelper.assignMembersPerformed(targetObject, targetType, query,
relation, type, target, pageBase);
}

protected abstract T getAssignmentTargetRefObject();

public int getWidth(){
Expand Down Expand Up @@ -421,4 +423,8 @@ public StringResourceModel getTitle(){
public Component getComponent(){
return this;
}

protected QName getDefaultTargetType() {
return RoleType.COMPLEX_TYPE;
}
}
Expand Up @@ -72,5 +72,10 @@ public String getCount() {
});
return tabs;
}

@Override
protected QName getDefaultTargetType() {
return OrgType.COMPLEX_TYPE;
}

}
Expand Up @@ -658,17 +658,6 @@ public static void executeMemberOperation(Task operationalTask, QName type, Obje
}
}

public static void executeMemberOperation(Task operationalTask, QName type, ObjectQuery memberQuery,
ObjectDelta delta, String category, OperationResult parentResult, PageBase pageBase) throws SchemaException{
ModelExecuteOptions options = TaskCategory.EXECUTE_CHANGES.equals(category)
? ModelExecuteOptions.createReconcile() // This was originally in ExecuteChangesTaskHandler, now it's transferred through task extension.
: null;
TaskType task = WebComponentUtil.createSingleRecurrenceTask(parentResult.getOperation(), type,
memberQuery, delta, options, category, pageBase);
WebModelServiceUtils.runTask(task, operationalTask, parentResult, pageBase);

}

public static boolean isAuthorized(String... action) {
if (action == null || action.length == 0) {
return true;
Expand Down
Expand Up @@ -792,8 +792,7 @@ private CheckFormGroup getIndirectmembersPanel() {
}

protected void recomputeMembersPerformed(AjaxRequestTarget target) {
MemberOperationsHelper.recomputeMembersPerformed(getPageBase(), getQueryScope(true), getActionQuery(getQueryScope(true), getSupportedRelations()), getSupportedRelations(), target);

MemberOperationsHelper.recomputeMembersPerformed(getPageBase(), getQueryScope(true), getActionQuery(getQueryScope(true), getSupportedRelations()), target);
}

protected ObjectQuery createContentQuery() {
Expand Down

0 comments on commit 430be50

Please sign in to comment.