From cc1cae802309e825faffab941270b8f030b800b9 Mon Sep 17 00:00:00 2001
From: Simon Leipold <s.leipold@adito.de>
Date: Fri, 24 May 2019 13:40:49 +0200
Subject: [PATCH] Permissions - added default values + automatic filling for
 fields when creating new permissions

---
 .../PermissionDetail_entity.aod               |  1 +
 .../accesstype/displayValueProcess.js         | 28 ++++++++++++-------
 .../entityfields/accesstype/valueProcess.js   | 28 ++++++++++++-------
 .../entityfields/condtype/valueProcess.js     |  3 ++
 .../entity/displayValueProcess.js             | 21 ++++++++------
 .../entityfields/entity/valueProcess.js       | 21 ++++++++------
 .../entityfields/role/displayValueProcess.js  | 28 +++++++++----------
 .../entityfields/role/valueProcess.js         | 21 ++++++++------
 8 files changed, 90 insertions(+), 61 deletions(-)
 create mode 100644 entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js

diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index 254f12ad6aa..3ed12925636 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -66,6 +66,7 @@
       <title>Condition Type</title>
       <consumer>KeywordConditionType</consumer>
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
index 9df8d712eee..fe3b117045c 100644
--- a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
@@ -1,10 +1,18 @@
-//import("system.vars");
-//import("system.result");
-//
-//var field = vars.get("$field.FIELD");
-//
-//if (field != undefined && field != null && field != "") {
-//    result.string("Feld");
-//} else {
-//    result.string("");
-//}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("Permission_lib");
+
+var field = vars.get("$field.FIELD");
+var role = vars.get("$field.ROLE");
+var entity = vars.get("$field.ENTITY");
+var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity);
+
+if (rootPermSet == "") {
+    result.string("Entität");
+} else {
+    result.string("Datensatz");
+} 
+
+if (field != undefined && field != null && field != "") {
+    result.string("Feld");
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
index 52f53388aaf..c24340acec1 100644
--- a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
@@ -1,10 +1,18 @@
-//import("system.vars");
-//import("system.result");
-//
-//var field = vars.get("$field.FIELD");
-//
-//if (field != undefined && field != null && field != "") {
-//    result.string("F");
-//} else {
-//    result.string("");
-//}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("Permission_lib");
+
+var field = vars.get("$field.FIELD");
+var role = vars.get("$field.ROLE");
+var entity = vars.get("$field.ENTITY");
+var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity);
+
+if (rootPermSet == "") {
+    result.string("E");
+} else {
+    result.string("R");
+} 
+
+if (field != undefined && field != null && field != "") {
+    result.string("F");
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js
new file mode 100644
index 00000000000..6f1c35b0b91
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("true");
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
index 241d200ca45..dba6c0a34aa 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
@@ -1,9 +1,12 @@
-//import("system.vars");
-//import("system.result");
-//import("system.neon");
-//
-//let recordstate = vars.get("$sys.recordstate");
-//
-//if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
-//    result.string(vars.getString("$param.EntityTitle_param"));
-//}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+var recordstate = vars.get("$sys.recordstate");
+
+if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+    var entity = vars.get("$param.EntityTitle_param"); 
+    if (entity != undefined && entity != null && entity != "") {
+        result.string(entity);
+    }
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
index 241d200ca45..dba6c0a34aa 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
@@ -1,9 +1,12 @@
-//import("system.vars");
-//import("system.result");
-//import("system.neon");
-//
-//let recordstate = vars.get("$sys.recordstate");
-//
-//if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
-//    result.string(vars.getString("$param.EntityTitle_param"));
-//}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+var recordstate = vars.get("$sys.recordstate");
+
+if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+    var entity = vars.get("$param.EntityTitle_param"); 
+    if (entity != undefined && entity != null && entity != "") {
+        result.string(entity);
+    }
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
index d4c1d911ed4..c03a14ebfbb 100644
--- a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
@@ -1,14 +1,14 @@
-//import("system.vars");
-//import("system.result");
-//import("system.neon");
-//
-//var recordstate = vars.get("$sys.recordstate");
-//
-//if (vars.exists("$param.RoleTitle_param")) {
-//    var role = vars.get("$param.RoleTitle_param");
-//    
-//    if(role != undefined && role != null && role != "" && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
-//        res = role.split("_");
-//        result.string(res[1]);
-//    }
-//}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+var recordstate = vars.get("$sys.recordstate");
+
+if (vars.exists("$param.RoleTitle_param")) {
+    var role = vars.get("$param.RoleTitle_param");
+    
+    if(role != undefined && role != null && role != "" && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+        res = role.split("_");
+        result.string(res[1]);
+    }
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
index cc6b48287a7..9c569f85385 100644
--- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
@@ -1,9 +1,12 @@
-//import("system.vars");
-//import("system.result");
-//import("system.neon");
-//
-//let recordstate = vars.get("$sys.recordstate");
-//
-//if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
-//    result.string(vars.getString("$param.RoleTitle_param"));
-//}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+let recordstate = vars.get("$sys.recordstate");
+
+if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+    var role = vars.get("$param.RoleTitle_param");
+    if (role != undefined && role != null && role != "") {
+        result.string(role);
+    }
+}
\ No newline at end of file
-- 
GitLab