From 215ab2d533363891881c37acc50e88e99bdb9dc2 Mon Sep 17 00:00:00 2001 From: Viliam Repan Date: Fri, 13 Apr 2018 10:33:53 +0200 Subject: [PATCH] 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());