Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Jul 24, 2014
2 parents 38e88dc + 0737aac commit 5e72d37
Show file tree
Hide file tree
Showing 25 changed files with 657 additions and 131 deletions.
Expand Up @@ -17,11 +17,16 @@
package com.evolveum.midpoint.web.component.assignment;

import com.evolveum.midpoint.prism.PrismContainerValue;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.PageBase;
import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.util.WebMiscUtil;
import com.evolveum.midpoint.web.util.WebModelUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;

Expand All @@ -36,24 +41,29 @@
*/
public class AssignmentEditorDto extends SelectableBean implements Comparable<AssignmentEditorDto> {

private static final String DOT_CLASS = AssignmentEditorDto.class.getName() + ".";
private static final String OPERATION_LOAD_ORG_TENANT = DOT_CLASS + "loadTenantOrg";

public static final String F_TYPE = "type";
public static final String F_NAME = "name";
public static final String F_DESCRIPTION = "description";
public static final String F_ACTIVATION = "activation";
public static final String F_RELATION = "relation";
public static final String F_TENANT_REF = "tenantRef";

private String name;
private AssignmentEditorDtoType type;
private UserDtoStatus status;
private AssignmentType oldAssignment;
private ObjectViewDto<OrgType> tenantRef;

private boolean showEmpty = false;
private boolean minimized = true;

private AssignmentType newAssignment;
private List<ACAttributeDto> attributes;

public AssignmentEditorDto(ObjectType targetObject, AssignmentEditorDtoType type, UserDtoStatus status, AssignmentType assignment) {
public AssignmentEditorDto(ObjectType targetObject, AssignmentEditorDtoType type, UserDtoStatus status, AssignmentType assignment, PageBase pageBase) {
Validate.notNull(status, "User dto status must not be null.");
Validate.notNull(type, "Type must not be null.");
Validate.notNull(assignment, "Assignment must not be null.");
Expand All @@ -76,6 +86,28 @@ public AssignmentEditorDto(ObjectType targetObject, AssignmentEditorDtoType type
// }

this.name = getNameForTargetObject(targetObject);
this.tenantRef = loadTenantReference(targetObject, assignment, pageBase);
}

private ObjectViewDto loadTenantReference(ObjectType object, AssignmentType assignment, PageBase page){
ObjectViewDto dto;

if(object instanceof RoleType){
if(assignment.getTenantRef() != null){
ObjectReferenceType ref = assignment.getTenantRef();

OperationResult result = new OperationResult(OPERATION_LOAD_ORG_TENANT);
PrismObject<OrgType> org = WebModelUtils.loadObject(OrgType.class, ref.getOid(), result, page);

dto = new ObjectViewDto(ref.getOid(), WebMiscUtil.getName(org.asObjectable()));
dto.setType(OrgType.class);
return dto;
}
}

dto = new ObjectViewDto();
dto.setType(OrgType.class);
return dto;
}

private String getNameForTargetObject(ObjectType object) {
Expand Down Expand Up @@ -181,6 +213,16 @@ public PrismContainerValue getNewValue() throws SchemaException {
newAssignment.setActivation(null);
}

if(tenantRef != null && AssignmentEditorDtoType.ROLE.equals(this.type)){
if(tenantRef.getOid() == null){
newAssignment.setTenantRef(null);
} else {
ObjectReferenceType ref = new ObjectReferenceType();
ref.setOid(this.tenantRef.getOid());
newAssignment.setTenantRef(ref);
}
}

ConstructionType construction = newAssignment.getConstruction();
if (construction == null) {
return newAssignment.asPrismContainerValue();
Expand Down Expand Up @@ -245,4 +287,12 @@ private int getIndexOfType(AssignmentEditorDtoType type) {

return 0;
}

public ObjectViewDto<OrgType> getTenantRef() {
return tenantRef;
}

public void setTenantRef(ObjectViewDto<OrgType> tenantRef) {
this.tenantRef = tenantRef;
}
}
Expand Up @@ -53,6 +53,13 @@
</div>
</div>

<div wicket:id="tenantRefContainer" class="row">
<div class="col-xs-4">
<span><wicket:message key="AssignmentEditorPanel.tenantRef" /></span>
</div>
<div wicket:id="tenantRefChooser"/>
</div>

<div class="row" wicket:id="activationBlock">
<div class="col-xs-12">
<h4>
Expand Down
Expand Up @@ -19,6 +19,9 @@
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
import com.evolveum.midpoint.model.api.ModelService;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.query.EqualFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
Expand All @@ -34,6 +37,9 @@
import com.evolveum.midpoint.web.component.util.SimplePanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.PageBase;
import com.evolveum.midpoint.web.page.admin.configuration.component.ChooseTypeDialog;
import com.evolveum.midpoint.web.page.admin.configuration.component.ChooseTypePanel;
import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto;
import com.evolveum.midpoint.web.util.WebMiscUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

Expand Down Expand Up @@ -98,10 +104,11 @@ public class AssignmentEditorPanel extends SimplePanel<AssignmentEditorDto> {
private static final String ID_TARGET = "target";
private static final String ID_TARGET_CONTAINER = "targetContainer";
private static final String ID_CONSTRUCTION_CONTAINER = "constructionContainer";
private static final String ID_CONTAINER_TENANT_REF = "tenantRefContainer";
private static final String ID_TENANT_CHOOSER = "tenantRefChooser";

private IModel<List<ACAttributeDto>> attributesModel;


public AssignmentEditorPanel(String id, IModel<AssignmentEditorDto> model) {
super(id, model);

Expand Down Expand Up @@ -250,6 +257,39 @@ private void initBodyLayout(WebMarkupContainer body) {
relation.setEnabled(false);
body.add(relation);

//TODO - add VisibleEnableBehaviour so we can only edit tenantRef in RoleAssignments
WebMarkupContainer tenantRefContainer = new WebMarkupContainer(ID_CONTAINER_TENANT_REF);
ChooseTypePanel tenantRef = new ChooseTypePanel(ID_TENANT_CHOOSER,
new PropertyModel<ObjectViewDto>(getModel(), AssignmentEditorDto.F_TENANT_REF)){

@Override
protected ObjectQuery getChooseQuery(){
ObjectQuery query = new ObjectQuery();

ObjectFilter filter = EqualFilter.createEqual(OrgType.F_TENANT, OrgType.class,
getPageBase().getPrismContext(), null, true);
query.setFilter(filter);

return query;
}
};
tenantRefContainer.add(tenantRef);
tenantRefContainer.add(new VisibleEnableBehaviour(){

@Override
public boolean isVisible() {
AssignmentEditorDto dto = getModel().getObject();
if(dto != null){
if(AssignmentEditorDtoType.ROLE.equals(dto.getType())){
return true;
}
}

return false;
}
});
body.add(tenantRefContainer);

WebMarkupContainer activationBlock = new WebMarkupContainer(ID_ACTIVATION_BLOCK);
activationBlock.add(new VisibleEnableBehaviour() {

Expand Down
Expand Up @@ -24,5 +24,6 @@ AssignmentEditorPanel.enabledFromTo={0}, from {1,date,medium} to {2,date,medium}
AssignmentEditorPanel.enabledFrom={0}, from {1,date,medium}
AssignmentEditorPanel.enabledTo={0}, to {1,date,medium}
AssignmentEditorPanel.relation=Relation
AssignmentEditorPanel.tenantRef=Tenant


Expand Up @@ -133,7 +133,7 @@ public List<AssignmentEditorDto> loadFromAssignmentTypeList(List<AssignmentType>
}
}

list.add(new AssignmentEditorDto(targetObject, type, UserDtoStatus.MODIFY, assignment));
list.add(new AssignmentEditorDto(targetObject, type, UserDtoStatus.MODIFY, assignment, getPageBase()));
}

Collections.sort(list);
Expand Down Expand Up @@ -383,7 +383,7 @@ private void addSelectedAssignablePerformed(AjaxRequestTarget target, List<Objec
AssignmentType assignment = new AssignmentType();
assignment.setTargetRef(targetRef);

AssignmentEditorDto dto = new AssignmentEditorDto(object, aType, UserDtoStatus.ADD, assignment);
AssignmentEditorDto dto = new AssignmentEditorDto(object, aType, UserDtoStatus.ADD, assignment, getPageBase());
dto.setMinimized(false);
dto.setShowEmpty(true);

Expand Down Expand Up @@ -414,7 +414,7 @@ private void addSelectedResourceAssignPerformed(ResourceType resource) {

List<AssignmentEditorDto> assignments = assignmentModel.getObject();
AssignmentEditorDto dto = new AssignmentEditorDto(resource, AssignmentEditorDtoType.ACCOUNT_CONSTRUCTION,
UserDtoStatus.ADD, assignment);
UserDtoStatus.ADD, assignment, getPageBase());
assignments.add(dto);

dto.setMinimized(false);
Expand Down
Expand Up @@ -20,11 +20,7 @@
import com.evolveum.midpoint.common.validator.EventHandler;
import com.evolveum.midpoint.common.validator.EventResult;
import com.evolveum.midpoint.common.validator.Validator;
import com.evolveum.midpoint.model.api.ModelDiagnosticService;
import com.evolveum.midpoint.model.api.ModelInteractionService;
import com.evolveum.midpoint.model.api.ModelService;
import com.evolveum.midpoint.model.api.TaskService;
import com.evolveum.midpoint.model.api.WorkflowService;
import com.evolveum.midpoint.model.api.*;
import com.evolveum.midpoint.prism.Objectable;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
Expand Down Expand Up @@ -59,6 +55,8 @@ public abstract class PageBase extends PageTemplate {

private static final Trace LOGGER = TraceManager.getTrace(PageBase.class);

@SpringBean(name = "modelController")
private ScriptingService scriptingService;
@SpringBean(name = "modelController")
private ModelService modelService;
@SpringBean(name = "modelController")
Expand Down Expand Up @@ -121,6 +119,10 @@ public ModelService getModelService() {
return modelService;
}

public ScriptingService getScriptingService(){
return scriptingService;
}

public TaskService getTaskService() {
return taskService;
}
Expand Down
Expand Up @@ -16,7 +16,11 @@

package com.evolveum.midpoint.web.page.admin.configuration;

import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.application.AuthorizationAction;
import com.evolveum.midpoint.web.application.PageDescriptor;
import com.evolveum.midpoint.web.component.AceEditor;
Expand All @@ -41,6 +45,11 @@
})
public class PageBulkAction extends PageAdminConfiguration {

private static final Trace LOGGER = TraceManager.getTrace(PageBulkAction.class);

private static final String DOT_CLASS = PageBulkAction.class.getName() + ".";
private static final String OPERATION_PERFORM_BULK = "performBulkAction";

private static final String ID_MAIN_FORM = "mainForm";
private static final String ID_START = "start";
private static final String ID_EDITOR = "editor";
Expand Down Expand Up @@ -80,6 +89,10 @@ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
private void startPerformed(AjaxRequestTarget target) {
model.getObject();

//todo implement
Task task = createSimpleTask(OPERATION_PERFORM_BULK);
OperationResult result = new OperationResult(OPERATION_PERFORM_BULK);

//TODO - continue here - we need to find a way to serialize XML String to JAXBElement<? extends ScriptingExpressionType> expression to continue
// getScriptingService().evaluateExpressionInBackground(, task, result);
}
}
Expand Up @@ -16,6 +16,7 @@

package com.evolveum.midpoint.web.page.admin.configuration.component;

import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.util.SimplePanel;
Expand Down Expand Up @@ -94,11 +95,20 @@ private void initDialog(){
protected void chooseOperationPerformed(AjaxRequestTarget target, ObjectType object){
choosePerformed(target, object);
}

@Override
protected ObjectQuery getDataProviderQuery(){
return getChooseQuery();
}
};

add(dialog);
}

protected ObjectQuery getChooseQuery(){
return null;
}

private void choosePerformed(AjaxRequestTarget target, ObjectType object){
ModalWindow window = (ModalWindow) get(MODAL_ID_SHOW_CHOOSE_OPTIONS);
window.close(target);
Expand Down
Expand Up @@ -68,7 +68,7 @@ public NotificationConfigurationDto(NotificationConfigurationType config){
username = serverConfig.getUsername();

if(serverConfig.getPassword() != null){
password = "Set";
password = "";
} else {
password = null;
}
Expand Down
Expand Up @@ -35,30 +35,8 @@ <h3><wicket:message key="PageOrgUnit.title.basic"/></h3>

<div class="form-group" wicket:id="orgType"/>

<!--
<label class="col-md-4 control-label"><wicket:message key="OrgType.orgType"/></label>-->

<!--<div class="col-md-6">-->
<!--<input type="text" class="form-control input-sm" wicket:message="placeholder:OrgType.orgType">-->
<!--</div>-->
<!--<div class="col-md-2">-->
<!--<span class="btn-group">-->
<!--<a class="btn btn-default btn-sm"><i class="silk-add"/></a>-->
<!--<a class="btn btn-default btn-sm"><i class="silk-delete"/></a>-->
<!--</span>-->
<!--</div>-->

<!--<div class="col-md-offset-4 col-md-6" style="margin-top: 5px;">-->
<!--<input type="text" class="form-control input-sm" wicket:message="placeholder:OrgType.orgType">-->
<!--</div>-->
<!--<div class="col-md-2" style="margin-top: 5px;">-->
<!--<span class="btn-group">-->
<!--<a class="btn btn-default btn-sm"><i class="silk-add"/></a>-->
<!--<a class="btn btn-default btn-sm"><i class="silk-delete"/></a>-->
<!--</span>-->
<!--</div>-->
<!--</div>-->
<div class="form-group" wicket:id="requestable"/>
<div class="form-group" wicket:id="tenant"/>
<div class="form-group" wicket:id="identifier"/>
<div class="form-group" wicket:id="costCenter"/>
<div class="form-group" wicket:id="locality"/>
Expand Down
Expand Up @@ -86,6 +86,7 @@ public class PageOrgUnit extends PageAdminUsers {
private static final String ID_DISPLAY_NAME = "displayName";
private static final String ID_DESCRIPTION = "description";
private static final String ID_REQUESTABLE = "requestable";
private static final String ID_TENANT = "tenant";
private static final String ID_IDENTIFIER = "identifier";
private static final String ID_COST_CENTER = "costCenter";
private static final String ID_LOCALITY = "locality";
Expand Down Expand Up @@ -205,6 +206,10 @@ private void initLayout() {
OrgType.F_REQUESTABLE), createStringResource("OrgType.requestable"), ID_LABEL_SIZE, ID_INPUT_SIZE);
form.add(requestable);

CheckFormGroup tenant = new CheckFormGroup(ID_TENANT, new PrismPropertyModel(orgModel,
OrgType.F_TENANT), createStringResource("OrgType.tenant"), ID_LABEL_SIZE, ID_INPUT_SIZE);
form.add(tenant);

TextFormGroup identifier = new TextFormGroup(ID_IDENTIFIER, new PrismPropertyModel(orgModel, OrgType.F_IDENTIFIER),
createStringResource("OrgType.identifier"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
form.add(identifier);
Expand Down

0 comments on commit 5e72d37

Please sign in to comment.