From e5a982360e87e52ebbb514aa2c57400690e9c557 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Thu, 12 Apr 2018 14:37:21 +0200 Subject: [PATCH 1/5] fixing GUI tests --- .../midpoint/gui/api/util/WebModelServiceUtils.java | 8 +++++++- .../web/component/prism/ItemWrapperComparator.java | 2 -- .../midpoint/web/TestIntegrationObjectWrapperFactory.java | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java index b25e4e1106c..a7ee5770bc9 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java @@ -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; @@ -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(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ItemWrapperComparator.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ItemWrapperComparator.java index 14ce8944465..ecb21b9788b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ItemWrapperComparator.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ItemWrapperComparator.java @@ -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; } diff --git a/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/TestIntegrationObjectWrapperFactory.java b/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/TestIntegrationObjectWrapperFactory.java index de631ad8f8f..515a594bb3e 100644 --- a/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/TestIntegrationObjectWrapperFactory.java +++ b/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/TestIntegrationObjectWrapperFactory.java @@ -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 mainContainerWrapper = objectWrapper.findContainerWrapper(null); WrapperTestUtil.assertWrapper(mainContainerWrapper, "prismContainer.mainPanelDisplayName", (ItemPath)null, user, ContainerStatus.MODIFYING); @@ -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 mainContainerWrapper = objectWrapper.findContainerWrapper(null); WrapperTestUtil.assertWrapper(mainContainerWrapper, "prismContainer.mainPanelDisplayName", (ItemPath)null, user, ContainerStatus.MODIFYING); @@ -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 attributesContainerWrapper = objectWrapper.findContainerWrapper(new ItemPath(ShadowType.F_ATTRIBUTES)); assertEquals("wrong number of values in "+attributesContainerWrapper, 1, attributesContainerWrapper.getValues().size()); @@ -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 attributesContainerWrapper = objectWrapper.findContainerWrapper(new ItemPath(ShadowType.F_ATTRIBUTES)); WrapperTestUtil.assertWrapper(attributesContainerWrapper, "attributes", new ItemPath(ShadowType.F_ATTRIBUTES), shadow.findContainer(ShadowType.F_ATTRIBUTES), From a1215783e5f6e9e45d79970c045be61b2d5607d0 Mon Sep 17 00:00:00 2001 From: kate Date: Thu, 12 Apr 2018 15:03:32 +0200 Subject: [PATCH 2/5] code refactoring --- .../admin/configuration/PageDebugView.java | 131 ++++++++---------- 1 file changed, 61 insertions(+), 70 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java index 41ac3e4e16e..bb03e263769 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugView.java @@ -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; @@ -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; @@ -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 objectViewDtoModel; public PageDebugView() { @@ -104,7 +106,7 @@ protected IModel createPageTitleModel() { @Override public String getObject() { - if (objectViewDto == null) { + if (objectViewDtoModel == null || objectViewDtoModel.getObject() == null) { return ""; } // ObjectViewDto object; @@ -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(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> 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 object = getModelService().getObject(type, objectOid.toString(), options, task, result); + GetOperationOptions rootOptions = GetOperationOptions.createRaw(); - PrismContext context = application.getPrismContext(); + rootOptions.setResolveNames(true); + rootOptions.setTolerateRawData(true); + Collection> 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 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() { @@ -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); @@ -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; @@ -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() { @@ -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; @@ -325,7 +334,7 @@ public void savePerformed(AjaxRequestTarget target) { OperationResult result = task.getResult(); try { - PrismObject oldObject = objectViewDto.getObject(); + PrismObject oldObject = objectViewDtoModel.getObject().getObject(); oldObject.revive(getPrismContext()); Holder objectHolder = new Holder<>(null); @@ -380,25 +389,7 @@ public void savePerformed(AjaxRequestTarget target) { } private void validateObject(OperationResult result, Holder 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 getObjectViewXmlModel(){ - return new IModel() { - @Override - public String getObject() { - return objectViewDto != null ? objectViewDto.getXml() : ""; - } - - @Override - public void setObject(String s) { - objectViewDto.setXml(s); - } - - @Override - public void detach() { - - } - }; - } } From b1202e1e0b4aeed7c2404bccd5c841afe3cddbb9 Mon Sep 17 00:00:00 2001 From: Jonathan Hill Date: Thu, 12 Apr 2018 16:14:15 -0400 Subject: [PATCH 3/5] Update case item menu item visibility --- .../java/com/evolveum/midpoint/gui/api/page/PageBase.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java index be8d73ddc0b..ad9b4be2399 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java @@ -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; From 215ab2d533363891881c37acc50e88e99bdb9dc2 Mon Sep 17 00:00:00 2001 From: Viliam Repan Date: Fri, 13 Apr 2018 10:33:53 +0200 Subject: [PATCH 4/5] MID-4583 audit target owner type changed to FocusType. added one column --- .../midpoint/audit/api/AuditEventRecord.java | 11 ++++------- .../evolveum/midpoint/repo/sql/AuditTest.java | 2 -- .../repo/sql/SqlAuditServiceImpl.java | 2 +- .../sql/data/audit/RAuditEventRecord.java | 19 +++++++++++++++---- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java b/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java index d8a720aae6d..52c1fdc5f79 100644 --- a/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java +++ b/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java @@ -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; @@ -112,7 +109,7 @@ public class AuditEventRecord implements DebugDumpable { private PrismReferenceValue target; // user that the target "belongs to"????: store OID, name - private PrismObject targetOwner; + private PrismObject targetOwner; // event type private AuditEventType eventType; @@ -269,11 +266,11 @@ public void setTarget(PrismObject targetObject) { } } - public PrismObject getTargetOwner() { + public PrismObject getTargetOwner() { return targetOwner; } - public void setTargetOwner(PrismObject targetOwner) { + public void setTargetOwner(PrismObject targetOwner) { this.targetOwner = targetOwner; } diff --git a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/AuditTest.java b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/AuditTest.java index 8884977394d..a6ba3a2034c 100644 --- a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/AuditTest.java +++ b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/AuditTest.java @@ -141,8 +141,6 @@ private AuditEventRecord getAuditEventRecord(int expectedCount, int index) { AuditEventRecord eventRecord = RAuditEventRecord.fromRepo(records.get(index), prismContext); session.getTransaction().commit(); return eventRecord; - } catch (DtoTranslationException e) { - throw new SystemException(e); } finally { session.close(); } diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java index 518de5c6148..7b940632299 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java @@ -236,7 +236,7 @@ private void listRecordsIterativeAttempt(String query, Map param audit.setInitiator(resolve(session, raudit.getInitiatorOid(), raudit.getInitiatorName(), defaultIfNull(raudit.getInitiatorType(), RObjectType.USER))); audit.setAttorney(resolve(session, raudit.getAttorneyOid(), raudit.getAttorneyName(), RObjectType.USER)); audit.setTarget(resolve(session, raudit.getTargetOid(), raudit.getTargetName(), raudit.getTargetType())); - audit.setTargetOwner(resolve(session, raudit.getTargetOwnerOid(), raudit.getTargetOwnerName(), RObjectType.USER)); + audit.setTargetOwner(resolve(session, raudit.getTargetOwnerOid(), raudit.getTargetOwnerName(), raudit.getTargetOwnerType())); count++; if (!handler.handle(audit)) { LOGGER.trace("Skipping handling of objects after {} was handled. ", audit); diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/audit/RAuditEventRecord.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/audit/RAuditEventRecord.java index da7b93e16f3..48955675d4e 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/audit/RAuditEventRecord.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/data/audit/RAuditEventRecord.java @@ -95,9 +95,10 @@ public class RAuditEventRecord implements Serializable { private String targetOid; private String targetName; private RObjectType targetType; - // prism object - user + // prism object private String targetOwnerOid; private String targetOwnerName; + private RObjectType targetOwnerType; private RAuditEventType eventType; private RAuditEventStage eventStage; @@ -271,6 +272,15 @@ public Timestamp getTimestamp() { return timestamp; } + @Enumerated(EnumType.ORDINAL) + public RObjectType getTargetOwnerType() { + return targetOwnerType; + } + + public void setTargetOwnerType(RObjectType targetOwnerType) { + this.targetOwnerType = targetOwnerType; + } + public void setMessage(String message) { this.message = message; } @@ -417,6 +427,7 @@ public boolean equals(Object o) { targetType == that.targetType && Objects.equals(targetOwnerOid, that.targetOwnerOid) && Objects.equals(targetOwnerName, that.targetOwnerName) && + Objects.equals(targetOwnerType, that.targetOwnerType) && eventType == that.eventType && eventStage == that.eventStage && Objects.equals(deltas, that.deltas) && @@ -436,7 +447,7 @@ public int hashCode() { .hash(id, timestamp, eventIdentifier, sessionIdentifier, taskIdentifier, taskOID, hostIdentifier, remoteHostAddress, nodeIdentifier, initiatorOid, initiatorName, initiatorType, attorneyOid, attorneyName, targetOid, targetName, targetType, targetOwnerOid, - targetOwnerName, eventType, eventStage, deltas, channel, outcome, parameter, message, + targetOwnerName, targetOwnerType, eventType, eventStage, deltas, channel, outcome, parameter, message, changedItems, propertyValues, referenceValues, result); } @@ -485,6 +496,7 @@ public static RAuditEventRecord toRepo(AuditEventRecord record, PrismContext pri PrismObject targetOwner = record.getTargetOwner(); repo.setTargetOwnerName(getOrigName(targetOwner)); repo.setTargetOwnerOid(targetOwner.getOid()); + repo.setTargetOwnerType(ClassMapper.getHQLTypeForClass(targetOwner.getCompileTimeClass())); } if (record.getInitiator() != null) { PrismObject initiator = record.getInitiator(); @@ -544,8 +556,7 @@ public static RAuditEventRecord toRepo(AuditEventRecord record, PrismContext pri return repo; } - public static AuditEventRecord fromRepo(RAuditEventRecord repo, PrismContext prismContext) - throws DtoTranslationException { + public static AuditEventRecord fromRepo(RAuditEventRecord repo, PrismContext prismContext) { AuditEventRecord audit = new AuditEventRecord(); audit.setChannel(repo.getChannel()); From 445a1acd82366251295382a67d42dd79c7c61fa3 Mon Sep 17 00:00:00 2001 From: Viliam Repan Date: Fri, 13 Apr 2018 10:38:56 +0200 Subject: [PATCH 5/5] MID-4583 audit target owner type, sql scripts updated --- config/sql/_all/h2-3.8-all.sql | 1 + config/sql/_all/mysql-3.8-all-utf8mb4.sql | 1 + config/sql/_all/mysql-3.8-all.sql | 1 + config/sql/_all/oracle-3.8-all.sql | 1 + config/sql/_all/postgresql-3.8-all.sql | 1 + config/sql/_all/sqlserver-3.8-all.sql | 1 + 6 files changed, 6 insertions(+) diff --git a/config/sql/_all/h2-3.8-all.sql b/config/sql/_all/h2-3.8-all.sql index ec7adacb08f..a9960fc102a 100644 --- a/config/sql/_all/h2-3.8-all.sql +++ b/config/sql/_all/h2-3.8-all.sql @@ -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), diff --git a/config/sql/_all/mysql-3.8-all-utf8mb4.sql b/config/sql/_all/mysql-3.8-all-utf8mb4.sql index e47a7a22bc3..9ff42cc5799 100644 --- a/config/sql/_all/mysql-3.8-all-utf8mb4.sql +++ b/config/sql/_all/mysql-3.8-all-utf8mb4.sql @@ -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 , diff --git a/config/sql/_all/mysql-3.8-all.sql b/config/sql/_all/mysql-3.8-all.sql index 614652dea89..970c5a71271 100644 --- a/config/sql/_all/mysql-3.8-all.sql +++ b/config/sql/_all/mysql-3.8-all.sql @@ -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), diff --git a/config/sql/_all/oracle-3.8-all.sql b/config/sql/_all/oracle-3.8-all.sql index e560d66f248..260e6397353 100644 --- a/config/sql/_all/oracle-3.8-all.sql +++ b/config/sql/_all/oracle-3.8-all.sql @@ -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), diff --git a/config/sql/_all/postgresql-3.8-all.sql b/config/sql/_all/postgresql-3.8-all.sql index fec98dd37d0..a10b89b2de5 100644 --- a/config/sql/_all/postgresql-3.8-all.sql +++ b/config/sql/_all/postgresql-3.8-all.sql @@ -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), diff --git a/config/sql/_all/sqlserver-3.8-all.sql b/config/sql/_all/sqlserver-3.8-all.sql index 07b4bb4502c..51f141bcc3c 100644 --- a/config/sql/_all/sqlserver-3.8-all.sql +++ b/config/sql/_all/sqlserver-3.8-all.sql @@ -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,