Fix Bug 529725 corrections on ACP DAO Update and fix in ACP Utils
Change-Id: I9163125da5877490036553ee3aafd82229852535
Signed-off-by: Guillaume Garzone <guillaume.garzone@laas.fr>
diff --git a/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java b/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java
index 71f75a0..7e5bf51 100644
--- a/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java
+++ b/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java
@@ -107,9 +107,11 @@
// For each originator in ACR
for (String originator : rule.getAccessControlOriginators()){
- AccessControlOriginatorEntity originatorEntity = new AccessControlOriginatorEntity(originator);
- ruleEntity.getAccessControlOriginators().add(originatorEntity);
- }
+ for (String splitted: originator.split(" ")) {
+ AccessControlOriginatorEntity originatorEntity = new AccessControlOriginatorEntity(splitted);
+ ruleEntity.getAccessControlOriginators().add(originatorEntity);
+ }
+ }
result.add(ruleEntity);
}
diff --git a/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java b/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java
index 8eb9afe..060ea31 100644
--- a/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java
+++ b/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java
@@ -69,6 +69,19 @@
DBTransactionJPAImpl transaction = (DBTransactionJPAImpl) dbTransaction;
List<LabelEntity> lbls = processLabels(dbTransaction, resource.getLabelsEntities());
resource.setLabelsEntities(lbls);
+
+ // persist self privilege
+ for(AccessControlRuleEntity acre : resource.getSelfPrivileges()) {
+ acre.setSelfAccessControlPolicy(resource);
+ transaction.getEm().persist(acre);
+ }
+
+ // persist privileges
+ for(AccessControlRuleEntity acre : resource.getPrivileges()) {
+ acre.setAccessControlPolicy(resource);
+ transaction.getEm().persist(acre);
+ }
+
transaction.getEm().merge(resource);
}