Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Apr 13, 2018
2 parents d1894a4 + 04300bd commit 58490b9
Show file tree
Hide file tree
Showing 15 changed files with 101 additions and 92 deletions.
1 change: 1 addition & 0 deletions config/sql/_all/h2-3.8-all.sql
Expand Up @@ -237,6 +237,7 @@ CREATE TABLE m_audit_event (
targetOid VARCHAR(36),
targetOwnerName VARCHAR(255),
targetOwnerOid VARCHAR(36),
targetOwnerType INTEGER,
targetType INTEGER,
taskIdentifier VARCHAR(255),
taskOID VARCHAR(255),
Expand Down
1 change: 1 addition & 0 deletions config/sql/_all/mysql-3.8-all-utf8mb4.sql
Expand Up @@ -283,6 +283,7 @@ CREATE TABLE m_audit_event (
targetOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin ,
targetOwnerName VARCHAR(255),
targetOwnerOid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin ,
targetOwnerType INTEGER,
targetType INTEGER,
taskIdentifier VARCHAR(255),
taskOID VARCHAR(255) CHARSET utf8 COLLATE utf8_bin ,
Expand Down
1 change: 1 addition & 0 deletions config/sql/_all/mysql-3.8-all.sql
Expand Up @@ -283,6 +283,7 @@ CREATE TABLE m_audit_event (
targetOid VARCHAR(36),
targetOwnerName VARCHAR(255),
targetOwnerOid VARCHAR(36),
targetOwnerType INTEGER,
targetType INTEGER,
taskIdentifier VARCHAR(255),
taskOID VARCHAR(255),
Expand Down
1 change: 1 addition & 0 deletions config/sql/_all/oracle-3.8-all.sql
Expand Up @@ -233,6 +233,7 @@ CREATE TABLE m_audit_event (
targetOid VARCHAR2(36 CHAR),
targetOwnerName VARCHAR2(255 CHAR),
targetOwnerOid VARCHAR2(36 CHAR),
targetOwnerType NUMBER(10, 0),
targetType NUMBER(10, 0),
taskIdentifier VARCHAR2(255 CHAR),
taskOID VARCHAR2(255 CHAR),
Expand Down
1 change: 1 addition & 0 deletions config/sql/_all/postgresql-3.8-all.sql
Expand Up @@ -233,6 +233,7 @@ CREATE TABLE m_audit_event (
targetOid VARCHAR(36),
targetOwnerName VARCHAR(255),
targetOwnerOid VARCHAR(36),
targetOwnerType INT4,
targetType INT4,
taskIdentifier VARCHAR(255),
taskOID VARCHAR(255),
Expand Down
1 change: 1 addition & 0 deletions config/sql/_all/sqlserver-3.8-all.sql
Expand Up @@ -233,6 +233,7 @@ CREATE TABLE m_audit_event (
targetOid NVARCHAR(36) COLLATE database_default,
targetOwnerName NVARCHAR(255) COLLATE database_default,
targetOwnerOid NVARCHAR(36) COLLATE database_default,
targetOwnerType INT,
targetType INT,
taskIdentifier NVARCHAR(255) COLLATE database_default,
taskOID NVARCHAR(255) COLLATE database_default,
Expand Down
Expand Up @@ -1546,7 +1546,9 @@ public String getBubbleLabel() {
addMenuItem(item, "PageAdmin.menu.top.cases.listAll", PageCasesAll.class);
addMenuItem(item, "PageAdmin.menu.top.caseWorkItems.list", PageCaseWorkItemsAllocatedToMe.class);
addMenuItem(item, "PageAdmin.menu.top.caseWorkItems.listAll", PageCaseWorkItemsAll.class);
addMenuItem(item, "PageAdmin.menu.top.caseWorkItems.view", PageCaseWorkItem.class);

createFocusPageViewMenu(item.getItems(), "PageAdmin.menu.top.caseWorkItems.view", PageCaseWorkItem.class);

addMenuItem(item, "PageAdmin.menu.top.case.new", PageCase.class);

return item;
Expand Down
Expand Up @@ -56,6 +56,7 @@

import org.apache.wicket.RestartResponseException;
import org.apache.wicket.Session;
import org.apache.wicket.ThreadContext;
import org.jetbrains.annotations.Nullable;

import static com.evolveum.midpoint.schema.GetOperationOptions.createNoFetchCollection;
Expand Down Expand Up @@ -580,7 +581,12 @@ public static Locale getLocale(UserType user) {
if (locale != null && MidPointApplication.containsLocale(locale)) {
return locale;
} else {
locale = Session.get().getLocale();
//session in tests is null
if (ThreadContext.getSession() == null) {
return MidPointApplication.getDefaultLocale();
}

locale = Session.get().getLocale();
if (locale == null || !MidPointApplication.containsLocale(locale)) {
//default locale for web application
return MidPointApplication.getDefaultLocale();
Expand Down
Expand Up @@ -42,12 +42,10 @@ public int compare(ItemWrapper p1, ItemWrapper p2) {
}

if (def1 instanceof PrismContainerDefinition) {
((ContainerWrapper) p1).sort();
return 1;
}

if (def2 instanceof PrismContainerDefinition) {
((ContainerWrapper) p2).sort();
return 1;
}

Expand Down
Expand Up @@ -16,6 +16,7 @@

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

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.model.api.ModelExecuteOptions;
Expand Down Expand Up @@ -50,6 +51,7 @@
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.util.string.StringValue;

import javax.xml.namespace.QName;
Expand Down Expand Up @@ -83,7 +85,7 @@ public class PageDebugView extends PageAdminConfiguration {
final Form mainForm = new com.evolveum.midpoint.web.component.form.Form("mainForm");
private String dataLanguage;
private boolean isInitialized = false;
private ObjectViewDto objectViewDto = new ObjectViewDto();
private IModel<ObjectViewDto> objectViewDtoModel;

public PageDebugView() {

Expand All @@ -104,7 +106,7 @@ protected IModel<String> createPageTitleModel() {

@Override
public String getObject() {
if (objectViewDto == null) {
if (objectViewDtoModel == null || objectViewDtoModel.getObject() == null) {
return "";
}
// ObjectViewDto object;
Expand All @@ -118,62 +120,69 @@ public String getObject() {
// if (object == null) {
// return "";
// } else {
return createStringResource("PageDebugView.title", objectViewDto.getName()).getString();
return createStringResource("PageDebugView.title", objectViewDtoModel.getObject().getName()).getString();
// }
}
};
}

private void initObjectViewObject() {
StringValue objectOid = getPageParameters().get(PARAM_OBJECT_ID);
if (objectOid == null || StringUtils.isEmpty(objectOid.toString())) {
getSession().error(getString("pageDebugView.message.oidNotDefined"));
throw new RestartResponseException(PageDebugList.class);
}
objectViewDtoModel = new LoadableModel<ObjectViewDto>(false) {
@Override
protected ObjectViewDto load() {
ObjectViewDto objectViewDto = new ObjectViewDto();
StringValue objectOid = getPageParameters().get(PARAM_OBJECT_ID);
if (objectOid == null || StringUtils.isEmpty(objectOid.toString())) {
getSession().error(getString("pageDebugView.message.oidNotDefined"));
throw new RestartResponseException(PageDebugList.class);
}

Task task = createSimpleTask(OPERATION_LOAD_OBJECT);
OperationResult result = task.getResult(); //todo is this result != null ?
try {
MidPointApplication application = PageDebugView.this.getMidpointApplication();

GetOperationOptions rootOptions = GetOperationOptions.createRaw();

rootOptions.setResolveNames(true);
rootOptions.setTolerateRawData(true);
Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(rootOptions);
// FIXME: ObjectType.class will not work well here. We need more specific type.
//todo on page debug list create page params, put there oid and class for object type and send that to this page....read it here
Class type = ObjectType.class;
StringValue objectType = getPageParameters().get(PARAM_OBJECT_TYPE);
if (objectType != null && StringUtils.isNotBlank(objectType.toString())) {
type = getPrismContext().getSchemaRegistry().determineCompileTimeClass(new QName(SchemaConstantsGenerated.NS_COMMON, objectType.toString()));
}
Task task = createSimpleTask(OPERATION_LOAD_OBJECT);
OperationResult result = task.getResult(); //todo is this result != null ?
try {
MidPointApplication application = PageDebugView.this.getMidpointApplication();

// TODO make this configurable (or at least do not show campaign cases in production)
WebModelServiceUtils.addIncludeOptionsForExportOrView(options, type);
PrismObject<ObjectType> object = getModelService().getObject(type, objectOid.toString(), options, task, result);
GetOperationOptions rootOptions = GetOperationOptions.createRaw();

PrismContext context = application.getPrismContext();
rootOptions.setResolveNames(true);
rootOptions.setTolerateRawData(true);
Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(rootOptions);
// FIXME: ObjectType.class will not work well here. We need more specific type.
//todo on page debug list create page params, put there oid and class for object type and send that to this page....read it here
Class type = ObjectType.class;
StringValue objectType = getPageParameters().get(PARAM_OBJECT_TYPE);
if (objectType != null && StringUtils.isNotBlank(objectType.toString())) {
type = getPrismContext().getSchemaRegistry().determineCompileTimeClass(new QName(SchemaConstantsGenerated.NS_COMMON, objectType.toString()));
}

String lex = context.serializerFor(dataLanguage).serialize(object);
objectViewDto = new ObjectViewDto(object.getOid(), WebComponentUtil.getName(object), object, lex);
// TODO make this configurable (or at least do not show campaign cases in production)
WebModelServiceUtils.addIncludeOptionsForExportOrView(options, type);
PrismObject<ObjectType> object = getModelService().getObject(type, objectOid.toString(), options, task, result);

result.recomputeStatus();
} catch (Exception ex) {
result.recordFatalError("Couldn't load object.", ex);
}
PrismContext context = application.getPrismContext();

if (objectViewDto == null) {
showResult(result);
throw new RestartResponseException(PageDebugList.class);
}
String lex = context.serializerFor(dataLanguage).serialize(object);
objectViewDto = new ObjectViewDto(object.getOid(), WebComponentUtil.getName(object), object, lex);

showResult(result, false);

if (!WebComponentUtil.isSuccessOrHandledErrorOrWarning(result)) {
showResult(result, false);
throw new RestartResponseException(PageDebugList.class);
}
result.recomputeStatus();
} catch (Exception ex) {
result.recordFatalError("Couldn't load object.", ex);
}

if (objectViewDto == null) {
showResult(result);
throw new RestartResponseException(PageDebugList.class);
}

showResult(result, false);

if (!WebComponentUtil.isSuccessOrHandledErrorOrWarning(result)) {
showResult(result, false);
throw new RestartResponseException(PageDebugList.class);
}
return objectViewDto;
}
};
}

private void initLayout() {
Expand Down Expand Up @@ -222,7 +231,7 @@ protected void onUpdate(AjaxRequestTarget target) {
}
});

plainTextarea = new TextArea<>(ID_PLAIN_TEXTAREA, getObjectViewXmlModel());
plainTextarea = new TextArea<>(ID_PLAIN_TEXTAREA, new PropertyModel<>(objectViewDtoModel, ObjectViewDto.F_XML));
plainTextarea.setVisible(false);

mainForm.add(plainTextarea);
Expand All @@ -235,7 +244,7 @@ protected void onUpdate(AjaxRequestTarget target) {
}

private void addOrReplaceEditor(){
editor = new AceEditor("aceEditor", getObjectViewXmlModel());
editor = new AceEditor("aceEditor", new PropertyModel<>(objectViewDtoModel, ObjectViewDto.F_XML));
editor.setModeForDataLanguage(dataLanguage);
editor.add(new AjaxFormComponentUpdatingBehavior("blur") {
private static final long serialVersionUID = 1L;
Expand All @@ -255,14 +264,14 @@ private void initViewButton(Form mainForm) {
@Override
protected void onLanguageSwitched(AjaxRequestTarget target, int updatedIndex, String updatedLanguage,
String objectString) {
objectViewDto.setXml(objectString);
objectViewDtoModel.getObject().setXml(objectString);
dataLanguage = updatedLanguage;
addOrReplaceEditor();
target.add(mainForm);
}
@Override
protected String getObjectStringRepresentation() {
return objectViewDto.getXml();
return objectViewDtoModel.getObject().getXml();
}
@Override
protected boolean isValidateSchema() {
Expand Down Expand Up @@ -315,7 +324,7 @@ private boolean isReport(PrismObject object){
}

public void savePerformed(AjaxRequestTarget target) {
if (StringUtils.isEmpty(objectViewDto.getXml())) {
if (StringUtils.isEmpty(objectViewDtoModel.getObject().getXml())) {
error(getString("pageDebugView.message.cantSaveEmpty"));
target.add(getFeedbackPanel());
return;
Expand All @@ -325,7 +334,7 @@ public void savePerformed(AjaxRequestTarget target) {
OperationResult result = task.getResult();
try {

PrismObject<ObjectType> oldObject = objectViewDto.getObject();
PrismObject<ObjectType> oldObject = objectViewDtoModel.getObject().getObject();
oldObject.revive(getPrismContext());

Holder<Objectable> objectHolder = new Holder<>(null);
Expand Down Expand Up @@ -380,25 +389,7 @@ public void savePerformed(AjaxRequestTarget target) {
}

private void validateObject(OperationResult result, Holder<Objectable> objectHolder) {
parseObject(objectViewDto.getXml(), objectHolder, dataLanguage, validateSchema.getObject(), false, Objectable.class, result);
parseObject(objectViewDtoModel.getObject().getXml(), objectHolder, dataLanguage, validateSchema.getObject(), false, Objectable.class, result);
}

private IModel<String> getObjectViewXmlModel(){
return new IModel<String>() {
@Override
public String getObject() {
return objectViewDto != null ? objectViewDto.getXml() : "";
}

@Override
public void setObject(String s) {
objectViewDto.setXml(s);
}

@Override
public void detach() {

}
};
}
}
Expand Up @@ -129,7 +129,7 @@ public void test100CreateWrapperUserJack() throws Exception {
IntegrationTestTools.display("Wrapper after", objectWrapper);

WrapperTestUtil.assertWrapper(objectWrapper, "user display name", "user description", user, ContainerStatus.MODIFYING);
assertEquals("wrong number of containers in "+objectWrapper, 7, objectWrapper.getContainers().size());
assertEquals("wrong number of containers in "+objectWrapper, 6, objectWrapper.getContainers().size());

ContainerWrapper<UserType> mainContainerWrapper = objectWrapper.findContainerWrapper(null);
WrapperTestUtil.assertWrapper(mainContainerWrapper, "prismContainer.mainPanelDisplayName", (ItemPath)null, user, ContainerStatus.MODIFYING);
Expand Down Expand Up @@ -185,7 +185,7 @@ public void test102CreateWrapperUserEmpty() throws Exception {
IntegrationTestTools.display("Wrapper after", objectWrapper);

WrapperTestUtil.assertWrapper(objectWrapper, "user display name", "user description", user, ContainerStatus.MODIFYING);
assertEquals("wrong number of containers in "+objectWrapper, 7, objectWrapper.getContainers().size());
assertEquals("wrong number of containers in "+objectWrapper, 6, objectWrapper.getContainers().size());

ContainerWrapper<UserType> mainContainerWrapper = objectWrapper.findContainerWrapper(null);
WrapperTestUtil.assertWrapper(mainContainerWrapper, "prismContainer.mainPanelDisplayName", (ItemPath)null, user, ContainerStatus.MODIFYING);
Expand Down Expand Up @@ -240,7 +240,7 @@ public void test150CreateWrapperShadow() throws Exception {
display("Wrapper after", objectWrapper);

WrapperTestUtil.assertWrapper(objectWrapper, "shadow display name", "shadow description", shadow, ContainerStatus.MODIFYING);
assertEquals("wrong number of containers in "+objectWrapper, 9, objectWrapper.getContainers().size());
assertEquals("wrong number of containers in "+objectWrapper, 8, objectWrapper.getContainers().size());

ContainerWrapper<ShadowAttributesType> attributesContainerWrapper = objectWrapper.findContainerWrapper(new ItemPath(ShadowType.F_ATTRIBUTES));
assertEquals("wrong number of values in "+attributesContainerWrapper, 1, attributesContainerWrapper.getValues().size());
Expand Down Expand Up @@ -322,7 +322,7 @@ public void test220AssignRoleLandluberToWally() throws Exception {
display("Wrapper after", objectWrapper);

WrapperTestUtil.assertWrapper(objectWrapper, "shadow display name", "shadow description", shadow, ContainerStatus.MODIFYING);
assertEquals("wrong number of containers in "+objectWrapper, 9, objectWrapper.getContainers().size());
assertEquals("wrong number of containers in "+objectWrapper, 8, objectWrapper.getContainers().size());

ContainerWrapper<ShadowAttributesType> attributesContainerWrapper = objectWrapper.findContainerWrapper(new ItemPath(ShadowType.F_ATTRIBUTES));
WrapperTestUtil.assertWrapper(attributesContainerWrapper, "attributes", new ItemPath(ShadowType.F_ATTRIBUTES), shadow.findContainer(ShadowType.F_ATTRIBUTES),
Expand Down
Expand Up @@ -37,10 +37,7 @@
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordPropertyType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectDeltaOperationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.ItemDeltaType;
import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;
Expand Down Expand Up @@ -112,7 +109,7 @@ public class AuditEventRecord implements DebugDumpable {
private PrismReferenceValue target;

// user that the target "belongs to"????: store OID, name
private PrismObject<UserType> targetOwner;
private PrismObject<FocusType> targetOwner;

// event type
private AuditEventType eventType;
Expand Down Expand Up @@ -269,11 +266,11 @@ public void setTarget(PrismObject<?> targetObject) {
}
}

public PrismObject<UserType> getTargetOwner() {
public PrismObject<FocusType> getTargetOwner() {
return targetOwner;
}

public void setTargetOwner(PrismObject<UserType> targetOwner) {
public void setTargetOwner(PrismObject<FocusType> targetOwner) {
this.targetOwner = targetOwner;
}

Expand Down

0 comments on commit 58490b9

Please sign in to comment.