Skip to content

Commit

Permalink
show all assignments functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Nov 12, 2017
1 parent badfe24 commit 371ce16
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 62 deletions.
Expand Up @@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.xml.namespace.QName;
import javax.xml.validation.Schema;
Expand All @@ -27,6 +28,9 @@
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.prism.*;
import com.evolveum.midpoint.web.page.admin.PageAdminFocus;
import com.evolveum.midpoint.web.page.admin.users.component.AssignmentPreviewDialog;
import com.evolveum.midpoint.web.page.admin.users.component.AssignmentsPreviewDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -132,8 +136,16 @@ private DropDownChoicePanel<RelationTypes> getRelationPanel() {
}


protected void showAllAssignments(AjaxRequestTarget target) {
}
protected void showAllAssignments(AjaxRequestTarget target) {
PageBase pageBase = getPageBase();
List<AssignmentsPreviewDto> previewAssignmentsList = new ArrayList<>();
if (pageBase instanceof PageAdminFocus){
previewAssignmentsList = ((PageAdminFocus) pageBase).recomputeAssignmentsPerformed(target);
}
AssignmentPreviewDialog assignmentPreviewDialog = new AssignmentPreviewDialog(pageBase.getMainPopupBodyId(), previewAssignmentsList,
new ArrayList<>(), pageBase);
pageBase.showMainPopup(assignmentPreviewDialog, target);
}

@Override
protected void newAssignmentClickPerformed(AjaxRequestTarget target) {
Expand Down
Expand Up @@ -50,14 +50,12 @@ protected void prepareObjectDeltaForModify(ObjectDelta<T> focusDelta) throws Sch
PrismObject<T> abstractRole = getObjectWrapper().getObject();
PrismContainerDefinition<AssignmentType> def = abstractRole.getDefinition()
.findContainerDefinition(AbstractRoleType.F_INDUCEMENT);
handleAssignmentDeltas(focusDelta, inducementsModel.getObject(), def);
}


@Override
protected void prepareObjectForAdd(PrismObject<T> focus) throws SchemaException {
super.prepareObjectForAdd(focus);
// handleAssignmentForAdd(focus, AbstractRoleType.F_INDUCEMENT, inducementsModel.getObject());
}

@Override
Expand Down
Expand Up @@ -407,42 +407,8 @@ protected void prepareObjectForAdd(PrismObject<F> focus) throws SchemaException
focusType.getParentOrg().addAll(orgsToAdd);
}

// handleAssignmentForAdd(focus, UserType.F_ASSIGNMENT, assignmentsModel.getObject());

}


protected void handleAssignmentForAdd(PrismObject<F> focus, QName containerName,
List<AssignmentDto> assignments) throws SchemaException {
PrismObjectDefinition<F> userDef = focus.getDefinition();
PrismContainerDefinition<AssignmentType> assignmentDef = userDef.findContainerDefinition(containerName);

// handle added assignments
// existing user assignments are not relevant -> delete them
PrismContainer<AssignmentType> assignmentContainer = focus.findOrCreateContainer(containerName);
if (assignmentContainer != null && !assignmentContainer.isEmpty()){
assignmentContainer.clear();
}

// List<AssignmentEditorDto> assignments = getFocusAssignments();
for (AssignmentDto assDto : assignments) {
if (UserDtoStatus.DELETE.equals(assDto.getStatus())) {
continue;
}

// AssignmentType assignment = new AssignmentType();
// PrismContainerValue<AssignmentType> value = assDto.getNewValue(getPrismContext());
// assignment.setupContainerValue(value);
// value.applyDefinition(assignmentDef, false);
assignmentContainer.add(assDto.getAssignment().clone().asPrismContainerValue());

// todo remove this block [lazyman] after model is updated - it has
// to remove resource from accountConstruction
removeResourceFromAccConstruction(assDto.getAssignment());
}
}


@Override
protected void prepareObjectDeltaForModify(ObjectDelta<F> focusDelta) throws SchemaException {
super.prepareObjectDeltaForModify(focusDelta);
Expand All @@ -459,24 +425,6 @@ protected void prepareObjectDeltaForModify(ObjectDelta<F> focusDelta) throws Sch
if (!refDelta.isEmpty()) {
focusDelta.addModification(refDelta);
}

// There may be assignments delta only if they are loaded. Otherwise the user didn't open
// the assignments tab at all. So, we are not loaded do not force load here. The load will
// only slow down the operation - especially if we have many assignments
// if (isAssignmentsLoaded()) {
// handle assignments
// PrismContainerDefinition<AssignmentType> def = objectDefinition.findContainerDefinition(UserType.F_ASSIGNMENT);
// handleAssignmentDeltas(focusDelta, getFocusAssignments(), def);
// List<AssignmentType> assignmentsList = new ArrayList<>();
// assignmentsList.addAll(getFocusAssignments());
// assignmentsList.addAll(getPolicyRulesModel().getObject());
//TODO perhaps not needed any more
// ContainerWrapper assignmentContainerWrapper = getObjectWrapper().findContainerWrapper(new ItemPath(FocusType.F_ASSIGNMENT));
//
// handleAssignmentExperimentalDeltas(focusDelta,
// assignmentContainerWrapper.getValues(),
// def, false);
// }
}

protected PrismObjectDefinition<F> getObjectDefinition() {
Expand All @@ -485,12 +433,6 @@ protected PrismObjectDefinition<F> getObjectDefinition() {
.findObjectDefinitionByCompileTimeClass(getCompileTimeClass());
}


protected ContainerDelta handleAssignmentDeltas(ObjectDelta<F> focusDelta,
List<AssignmentEditorDto> assignments, PrismContainerDefinition def) throws SchemaException {
return handleAssignmentDeltas(focusDelta, assignments, def, false);
}

protected ContainerDelta handleAssignmentDeltas(ObjectDelta<F> focusDelta,
List<AssignmentEditorDto> assignments, PrismContainerDefinition def,
boolean isDelegation) throws SchemaException {
Expand Down

0 comments on commit 371ce16

Please sign in to comment.