From c747880c7474e7423c8a61e8d6e3345976842367 Mon Sep 17 00:00:00 2001
From: Simon Leipold <s.leipold@adito.de>
Date: Wed, 29 May 2019 15:25:59 +0200
Subject: [PATCH] Permissions - field permissions and refactoring

---
 .../PermissionDetail_entity.aod               | 349 +++++++++---------
 .../contentTitleProcess.js                    |   4 +-
 .../entityfields/field/dropDownProcess.js     |  24 ++
 .../PermissionMetaData_entity.aod             | 188 +++++-----
 .../recordcontainers/jdito/contentProcess.js  |  17 +-
 5 files changed, 308 insertions(+), 274 deletions(-)
 create mode 100644 entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js

diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index d3add1631d..f3d756e765 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -1,171 +1,178 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>PermissionDetail_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <title>Permission Detail</title>
-  <contentTitleProcess>%aditoprj%/entity/PermissionDetail_entity/contentTitleProcess.js</contentTitleProcess>
-  <iconIdProcess>%aditoprj%/entity/PermissionDetail_entity/iconIdProcess.js</iconIdProcess>
-  <recordContainer>jDito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityField>
-      <name>CONDITION</name>
-      <title>Condition</title>
-    </entityField>
-    <entityField>
-      <name>ACTION</name>
-      <title>Action</title>
-      <mandatory v="true" />
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>ROLE</name>
-      <title>Role</title>
-      <consumer>Roles</consumer>
-      <linkedContext>Role</linkedContext>
-      <mandatory v="true" />
-      <groupable v="true" />
-      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>ENTITY</name>
-      <title>Entity</title>
-      <consumer>MetaData</consumer>
-      <linkedContext>PermissionMetaData</linkedContext>
-      <mandatory v="true" />
-      <groupable v="true" />
-      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>FIELD</name>
-      <title>Field</title>
-      <groupable v="true" />
-    </entityField>
-    <entityField>
-      <name>UID</name>
-      <title>PermissionId</title>
-    </entityField>
-    <entityField>
-      <name>ICON</name>
-    </entityField>
-    <entityField>
-      <name>ACCESSTYPE</name>
-      <title>Access type</title>
-      <consumer>KeywordAccessType</consumer>
-      <mandatory v="true" />
-      <groupable v="true" />
-      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>CONDTYPE</name>
-      <title>Condition Type</title>
-      <consumer>KeywordConditionType</consumer>
-      <mandatory v="true" />
-      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>PARENT</name>
-      <title>Parent</title>
-    </entityField>
-    <entityProvider>
-      <name>Permissions</name>
-      <recordContainer>jDito</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>b1a6483c-e7b1-4eb7-aa22-d0e9d0ef0b49</name>
-          <entityName>Role_entity</entityName>
-          <fieldName>Permissions</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>cc0e9a4d-5d82-4407-bc4e-698dcfae5c86</name>
-          <entityName>PermissionMetaData_entity</entityName>
-          <fieldName>PermissionDetails</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityParameter>
-      <name>RoleTitle_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityConsumer>
-      <name>Roles</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Role_entity</entityName>
-        <fieldName>Roles</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>MetaData</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>PermissionMetaData_entity</entityName>
-        <fieldName>MetaData</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityParameter>
-      <name>EntityTitle_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityConsumer>
-      <name>KeywordConditionType</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/keywordconditiontype/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordAccessType</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/keywordaccesstype/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jDito</name>
-      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
-      <contentProcess>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <onInsert>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js</onInsert>
-      <onUpdate>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
-      <onDelete>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js</onDelete>
-      <recordFields>
-        <element>UID.value</element>
-        <element>ENTITY.value</element>
-        <element>ROLE.value</element>
-        <element>FIELD.value</element>
-        <element>CONDITION.value</element>
-        <element>ACTION.value</element>
-        <element>ACCESSTYPE.value</element>
-        <element>CONDTYPE.value</element>
-        <element>PARENT.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>PermissionDetail_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Permission Detail</title>
+  <contentTitleProcess>%aditoprj%/entity/PermissionDetail_entity/contentTitleProcess.js</contentTitleProcess>
+  <iconIdProcess>%aditoprj%/entity/PermissionDetail_entity/iconIdProcess.js</iconIdProcess>
+  <recordContainer>jDito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>CONDITION</name>
+      <title>Condition</title>
+    </entityField>
+    <entityField>
+      <name>ACTION</name>
+      <title>Action</title>
+      <mandatory v="true" />
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>ROLE</name>
+      <title>Role</title>
+      <consumer>Roles</consumer>
+      <linkedContext>Role</linkedContext>
+      <mandatory v="true" />
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>ENTITY</name>
+      <title>Entity</title>
+      <consumer>MetaData</consumer>
+      <linkedContext>PermissionMetaData</linkedContext>
+      <mandatory v="true" />
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>FIELD</name>
+      <title>Field</title>
+      <dropDownProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js</dropDownProcess>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>UID</name>
+      <title>PermissionId</title>
+    </entityField>
+    <entityField>
+      <name>ICON</name>
+    </entityField>
+    <entityField>
+      <name>ACCESSTYPE</name>
+      <title>Access type</title>
+      <consumer>KeywordAccessType</consumer>
+      <mandatory v="true" />
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>CONDTYPE</name>
+      <title>Condition Type</title>
+      <consumer>KeywordConditionType</consumer>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>PARENT</name>
+      <title>Parent</title>
+    </entityField>
+    <entityProvider>
+      <name>Permissions</name>
+      <recordContainer>jDito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>b1a6483c-e7b1-4eb7-aa22-d0e9d0ef0b49</name>
+          <entityName>Role_entity</entityName>
+          <fieldName>Permissions</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>cc0e9a4d-5d82-4407-bc4e-698dcfae5c86</name>
+          <entityName>PermissionMetaData_entity</entityName>
+          <fieldName>PermissionDetails</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityParameter>
+      <name>RoleTitle_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>Roles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Role_entity</entityName>
+        <fieldName>Roles</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>MetaData</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>PermissionMetaData_entity</entityName>
+        <fieldName>MetaData</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>EntityName_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/metadata/children/entityname_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>EntityTitle_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>KeywordConditionType</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/keywordconditiontype/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordAccessType</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/keywordaccesstype/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jDito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <onInsert>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js</onInsert>
+      <onUpdate>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <onDelete>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js</onDelete>
+      <recordFields>
+        <element>UID.value</element>
+        <element>ENTITY.value</element>
+        <element>ROLE.value</element>
+        <element>FIELD.value</element>
+        <element>CONDITION.value</element>
+        <element>ACTION.value</element>
+        <element>ACCESSTYPE.value</element>
+        <element>CONDTYPE.value</element>
+        <element>PARENT.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js
index 919f3af72f..bfaa82dcf8 100644
--- a/entity/PermissionDetail_entity/contentTitleProcess.js
+++ b/entity/PermissionDetail_entity/contentTitleProcess.js
@@ -1,3 +1,5 @@
+import("system.project");
+import("system.logging");
 import("system.vars");
 import("system.result");
 
@@ -15,7 +17,7 @@ switch (vars.get("$field.ACCESSTYPE")) {
         res += "Record";
         break;
     case "F":
-        res += vars.get("$field.FIELD");
+        res += "Field '" + vars.get("$field.FIELD") + "'";
         break;
     default:
         res += "Permission";
diff --git a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
new file mode 100644
index 0000000000..a0b883d9d7
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
@@ -0,0 +1,24 @@
+import("system.logging");
+import("system.result");
+import("system.vars");
+import("system.project");
+
+var entityTitle = vars.get("$param.EntityTitle_param");
+if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
+    var entityStructure = project.getEntityStructure(entityTitle);
+    var res = [];
+
+    for (var field in entityStructure.fields) { 
+        field = entityStructure.fields[field];
+        if (field.usePermissions == true) {
+            var name = field.name;
+            var title = field.title;
+            if (title != undefined && title != null && title != "") {
+                res.push([title, title]);
+            } else {
+                res.push([name, name]);
+            }
+        }
+    }
+    result.object(res);
+}
\ No newline at end of file
diff --git a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
index 5b8c1e58a3..d8635bbbef 100644
--- a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
+++ b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
@@ -1,92 +1,96 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>PermissionMetaData_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <icon>VAADIN:CONNECT</icon>
-  <title>Entities</title>
-  <contentTitleProcess>%aditoprj%/entity/PermissionMetaData_entity/contentTitleProcess.js</contentTitleProcess>
-  <iconIdProcess>%aditoprj%/entity/PermissionMetaData_entity/iconIdProcess.js</iconIdProcess>
-  <recordContainer>jDito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityField>
-      <name>TITLE</name>
-      <title>Title</title>
-    </entityField>
-    <entityField>
-      <name>DESCRIPTION</name>
-      <title>Description</title>
-    </entityField>
-    <entityField>
-      <name>UID</name>
-      <title>Name</title>
-    </entityField>
-    <entityProvider>
-      <name>MetaData</name>
-      <recordContainer>jDito</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>3b2c9421-5ff0-49a3-99f0-6790f17bd76c</name>
-          <entityName>PermissionDetail_entity</entityName>
-          <fieldName>MetaData</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>EntityName_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityConsumer>
-      <name>PermissionOverviews</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>PermissionOverview_entity</entityName>
-        <fieldName>PermissionOverviews</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>EntityTitle_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>PermissionDetails</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>PermissionDetail_entity</entityName>
-        <fieldName>Permissions</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>EntityTitle_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>EntityName_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jDito</name>
-      <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias>
-      <isPageable v="false" />
-      <isFilterable v="true" />
-      <contentProcess>%aditoprj%/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <recordFields>
-        <element>UID.value</element>
-        <element>TITLE.value</element>
-        <element>DESCRIPTION.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>PermissionMetaData_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:CONNECT</icon>
+  <title>Entities</title>
+  <contentTitleProcess>%aditoprj%/entity/PermissionMetaData_entity/contentTitleProcess.js</contentTitleProcess>
+  <iconIdProcess>%aditoprj%/entity/PermissionMetaData_entity/iconIdProcess.js</iconIdProcess>
+  <recordContainer>jDito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>TITLE</name>
+      <title>Title</title>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+      <title>Description</title>
+    </entityField>
+    <entityField>
+      <name>UID</name>
+      <title>Name</title>
+    </entityField>
+    <entityProvider>
+      <name>MetaData</name>
+      <recordContainer>jDito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>3b2c9421-5ff0-49a3-99f0-6790f17bd76c</name>
+          <entityName>PermissionDetail_entity</entityName>
+          <fieldName>MetaData</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>EntityName_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>PermissionOverviews</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>PermissionOverview_entity</entityName>
+        <fieldName>PermissionOverviews</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>EntityTitle_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>PermissionDetails</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>PermissionDetail_entity</entityName>
+        <fieldName>Permissions</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>EntityTitle_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>EntityName_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>USEPERMISSION</name>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jDito</name>
+      <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias>
+      <isPageable v="false" />
+      <isFilterable v="true" />
+      <contentProcess>%aditoprj%/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFields>
+        <element>UID.value</element>
+        <element>TITLE.value</element>
+        <element>DESCRIPTION.value</element>
+        <element>USEPERMISSION.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js
index 244e9ef8df..1edce1c763 100644
--- a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js
@@ -1,24 +1,21 @@
+import("system.logging");
 import("system.vars");
 import("system.result");
 import("system.project");
 
-var entities = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
 var selectedEntity = vars.get("$local.idvalues");
 var res = [];
 
 if (selectedEntity == null) {
-    for each (let entity in entities) {
-        if (entity[6] == "true") {
-            res.push([entity[0], entity[1], entity[2]]);
+    var allEntities = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
+    for each (let e in allEntities) {
+        if (e[6] == "true") {
+            res.push([e[0], e[1], e[2], e[6]]);
         }
     }
 } else {
-    for each (let entity in entities) {
-        if (entity[0] == selectedEntity) {
-            res.push([entity[0], entity[1], entity[2]]);
-            break;
-        }
-    }
+    entity = project.getDataModel(project.DATAMODEL_KIND_ENTITY, selectedEntity);
+    res.push([entity[0], entity[1], entity[2], entity[6]]);
 }
 
 result.object(res.sort());
\ No newline at end of file
-- 
GitLab