diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
index 64e6cf96666fb928990c9c5b01372351b4050c4e..6adda90fc0af31a0d23a40bc7df62f311f10b4ce 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
@@ -132,7 +132,7 @@ result.object(res);
 function prepareResultArray(pEntry, pRes) {
     var parentPermission = "";
     
-    if (pEntry.accesstype != "E") {
+    if (pEntry.accesstype != PermissionEnums.ACCESSTYPE_ENTITY()) {
         parentPermission = PermissionUtil.getPermissionWithoutCond(PermissionUtil.getParentSetOfSet(PermissionUtil.getParentSet(pEntry.permissionid)));
     }
     pRes.push([pEntry.permissionid, pEntry.entity, pEntry.role, pEntry.field, pEntry.cond, 
diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
index 684c606088bd42f9ffb9db28f4f24b22afb32ac0..f31922237d2bb078fc545b974525733ca34e36fa 100644
--- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,4 @@
+import("system.util");
 import("Util_lib");
 import("Sql_lib");
 import("system.project");
@@ -15,8 +16,10 @@ var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
 var entitiesUsePermFlagSet = []; // array, which contains ids of entities with usePermission flag set
 
 // gets all names of the entites which have the 'usePermission'-flag set (positive list)
-for each (let entityMetaData in entitiesMetaData) {
-    if (entityMetaData[6] == "true") {
+for each (let entityMetaData in entitiesMetaData) 
+{
+    if (entityMetaData[6] == "true") 
+    {
         entitiesUsePermFlagSet.push(entityMetaData[0]);
     }
 }
@@ -24,12 +27,15 @@ for each (let entityMetaData in entitiesMetaData) {
 var rolesOrEntitiesSelect = new SqlBuilder(alias).where();
 var rolesOrEntities = [];
 
-if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
+if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) 
+{
     roleName = vars.getString("$param.RoleName_param");
     rolesOrEntitiesSelect.select("distinct ASYS_PERMISSIONSET.ENTITY_ID")
         .from("ASYS_PERMISSIONSET")
         .and("ASYS_PERMISSIONSET.ROLE_ID", roleName);
-} else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
+} 
+else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) 
+{
     entityName = vars.getString("$param.EntityId_param");
     rolesOrEntitiesSelect.select("distinct ASYS_PERMISSIONSET.ROLE_ID")
         .from("ASYS_PERMISSIONSET")
@@ -41,40 +47,38 @@ rolesOrEntities = rolesOrEntitiesSelect
     .arrayColumn();
 
 var entityPermSetId = "";
-for each (var entry in rolesOrEntities) { // entry contains either a role or an entity, depending on which param exists
-    if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
+for each (var entry in rolesOrEntities)
+{ // entry contains either a role or an entity, depending on which param exists
+    var overview = {
+        uid: util.getNewUUID(), 
+        entry: entry, 
+        view: PermissionEnums.FORBIDDEN_ACTION_ICON(), 
+        create: PermissionEnums.FORBIDDEN_ACTION_ICON(), 
+        read: PermissionEnums.FORBIDDEN_ACTION_ICON(), 
+        update: PermissionEnums.FORBIDDEN_ACTION_ICON(), 
+        "delete": PermissionEnums.FORBIDDEN_ACTION_ICON()
+    };
+    
+    if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param"))
+    {
         entityPermSetId = PermissionUtil.getSetRoot(roleName, entry);
-    } else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
+    } 
+    else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param"))
+    {
         entityPermSetId = PermissionUtil.getSetRoot(entry, entityName);
     }
-    var recordPermSetId = newSelect("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID", alias)
-    .from("ASYS_PERMISSIONSET")
-    .where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", entityPermSetId)
-    .and("ASYS_PERMISSIONSET.ACCESSTYPE", 'R')
-    .arrayColumn();
-    var currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
 
     if (entityPermSetId)
     {
-        recordPermSetId = new SqlBuilder(alias)
-            .select("ASYS_PERMISSIONSETID")
-            .from("ASYS_PERMISSIONSET")
-            .where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", entityPermSetId)
-            .and("ASYS_PERMISSIONSET.ACCESSTYPE", "R")
-            .arrayColumn();
-
-        currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
-
-        // default entity permissions
-        currOverview = prepareOverview(entityPermSetId, currOverview, "default");
+        var recordPermSetId = PermissionUtil.getRecordSetOfEntitySet(entityPermSetId);
+        
+        // entity permissions
+        overview = prepareOverview(entityPermSetId, overview);
 
-        // conditional record permissions
-        currOverview = prepareOverview(recordPermSetId, currOverview, "conditional");
+        // record permissions
+        overview = prepareOverview(recordPermSetId, overview);
 
-        // default record permissions
-        currOverview = prepareOverview(recordPermSetId, currOverview, "default");
-
-        res.push(currOverview);
+        res.push([overview.uid, overview.entry, overview.view, overview.create, overview.read, overview.update, overview["delete"]]);
     }
 }
 
@@ -103,70 +107,43 @@ ArrayUtils.sortMulti(res, sortOrder);
 
 result.object(res);
 
-function prepareOverview(pPermSetId, pCurrOverview, pMode) {
-    var conditionalPermActionId = [], currOverview;
-    if (pPermSetId == "") {
-        return pCurrOverview;
-    }
-    switch (pMode) {
-        case "default":
-            var permId = PermissionUtil.getPermissionWithoutCond(pPermSetId);
-            var defaultPermActionId = PermissionUtil.getActions([permId]);
-            currOverview = pCurrOverview;
+function prepareOverview(pPermSetId, pOverview) {
+    if (!pPermSetId) { return pOverview; }
+    
+    var conditionalPermActionId = [];
+    var overview = pOverview;
+
+    var permId = PermissionUtil.getPermissionWithoutCond(pPermSetId);
+    if (permId && permId != "")
+    {
+        var defaultPermActionId = PermissionUtil.getActions([permId]);
     
-            if (PermissionUtil.getCondType(permId) == 1 ) {
-                for each (let actionSets in defaultPermActionId) {
-                    switch (PermissionUtil.resolveActionId(actionSets)) {
-                        case "view":
-                            currOverview[2] = "VAADIN:CIRCLE";
-                            break;
-                        case "create":
-                            currOverview[3] = "VAADIN:CIRCLE";
-                            break;
-                        case "read":
-                            currOverview[4] = "VAADIN:CIRCLE";
-                            break;
-                        case "update":
-                            currOverview[5] = "VAADIN:CIRCLE";
-                            break;
-                        case "delete":
-                            currOverview[6] = "VAADIN:CIRCLE";
-                            break;
-                    }
-                }
+        if (PermissionUtil.getCondType(permId) == 1)
+        {
+            for each (let actionSets in defaultPermActionId)
+            {
+                overview[PermissionUtil.resolveActionId(actionSets)] = PermissionEnums.PERMITTED_ACTION_ICON();
             }
-            break;
-        case "conditional":
-            var permIds = PermissionUtil.getPermissionWithCond(pPermSetId);
-            
-            permIds.forEach(function(permId) {
-                conditionalPermActionId.push(PermissionUtil.getActions([permId]));
-            });
-           
-            currOverview = pCurrOverview;
-            
-            for each (let actionSets in conditionalPermActionId) {
-                for each (let action in actionSets) {
-                    switch (PermissionUtil.resolveActionId(action)) {
-                        case "view":
-                            currOverview[2] = "VAADIN:CIRCLE_THIN";
-                            break;
-                        case "create":
-                            currOverview[3] = "VAADIN:CIRCLE_THIN";
-                            break;
-                        case "read":
-                            currOverview[4] = "VAADIN:CIRCLE_THIN";
-                            break;
-                        case "update":
-                            currOverview[5] = "VAADIN:CIRCLE_THIN";
-                            break;
-                        case "delete":
-                            currOverview[6] = "VAADIN:CIRCLE_THIN";
-                            break;
-                    }
-                }
+        }       
+    }
+
+    var permIds = PermissionUtil.getPermissionWithCond(pPermSetId);
+    
+    if (permIds && permIds.length > 0)
+    {
+        for each (let permId in permIds)
+        {
+            conditionalPermActionId.push(PermissionUtil.getActions([permId]));
+        }
+
+        for each (let actionSets in conditionalPermActionId)
+        {
+            for each (let action in actionSets)
+            {
+                overview[PermissionUtil.resolveActionId(action)] = PermissionEnums.RESTRICTED_ACTION_ICON();
             }
-            break;
+        }
     }
-    return currOverview;
+
+    return overview;
 }
\ No newline at end of file
diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js
index 9a4b05adcacf8a765e7c19149128ec2e34ed7a90..1f2162f154ce7b2873ae575b0d23013954129362 100644
--- a/process/Permission_lib/process.js
+++ b/process/Permission_lib/process.js
@@ -5,6 +5,54 @@ import("system.util");
 import("system.db");
 import("Sql_lib");
 
+/**
+ * Object for the enumeration of types connected to permissions.
+ * This object is only for the general definition of types and 
+ * other permission related data.
+ * Use PermissionUtil for more complex stuff.
+ */
+function PermissionEnums () {}
+
+PermissionEnums.ACCESSTYPE_ENTITY = function () {
+    return "E";
+}
+PermissionEnums.ACCESSTYPE_FIELD = function () {
+    return "F";
+}
+PermissionEnums.ACCESSTYPE_RECORD = function () {
+    return "R";
+}
+PermissionEnums.ACTION_VIEW = function() {
+    return "view"
+    };
+PermissionEnums.ACTION_CREATE = function() {
+    return "create"
+    };
+PermissionEnums.ACTION_READ = function() {
+    return "read"
+    };
+PermissionEnums.ACTION_UPDATE = function() {
+    return "update"
+    };
+PermissionEnums.ACTION_DELETE = function() {
+    return "delete"
+    };
+PermissionEnums.CONDITIONTYPE_DEFAULT = function() {
+    return "default"
+    };
+PermissionEnums.CONDITIONTYPE_CONDITIONAL = function() {
+    return "conditional"
+    };
+PermissionEnums.PERMITTED_ACTION_ICON = function () {
+    return "VAADIN:CIRCLE";
+}
+PermissionEnums.RESTRICTED_ACTION_ICON = function () {
+    return "VAADIN:CIRCLE_THIN";
+}
+PermissionEnums.FORBIDDEN_ACTION_ICON = function () {
+    return "VAADIN:CLOSE";
+}
+
 /**
  * Provides functions to work with permissions.
  * This includes sets, permissions, actions, roles and role hierarchies.
@@ -280,6 +328,7 @@ function PermissionUtil () {}
      * @result {String[]} returns the ids of permissions with conditions of a given permission set. The result can never be null.
      */
     PermissionUtil.getPermissionWithCond = function(pSetId) {
+        if (!pSetId || pSetId == "") return [];
         var emptyCond = PermissionUtil.getEmptyCondString(PermissionUtil.getEntity(pSetId));
     
         return newSelect("ASYS_PERMISSIONID", alias)
@@ -333,7 +382,7 @@ function PermissionUtil () {}
         .from("ASYS_PERMISSIONSET")
         .where("ASYS_PERMISSIONSET.ROLE_ID", pRoleName)
         .and("ASYS_PERMISSIONSET.ENTITY_ID", pEntity)
-        .and("ASYS_PERMISSIONSET.ACCESSTYPE", "E")
+        .and("ASYS_PERMISSIONSET.ACCESSTYPE", PermissionEnums.ACCESSTYPE_ENTITY())
         .cell();
     }
 
@@ -666,7 +715,7 @@ function PermissionUtil () {}
      * 
      * @param {String} pEntity name of the entity, mandatory
      * 
-     * @param {String} pAccesstype type of accesslevel ("E", "R" or "F"), mandatory
+     * @param {String} pAccesstype type of accesslevel ("E", "R" or "F", e.g. use PermissionTypes.ACCESSTYPE_ENTITY()), mandatory
      * 
      * @param {String} pAction action to be checked (view, create, read, update, delete), mandatory
      * 
@@ -869,6 +918,21 @@ function PermissionUtil () {}
         .arrayColumn(true);
     }
     
+    /**
+     * Gets the linked record permission set of the given entity permission set.
+     * 
+     * @param {String} pEntitySetId ID of the entity permission set
+     * 
+     * @result {String[]} returns the id of the record permission set
+     */
+    PermissionUtil.getRecordSetOfEntitySet = function(pEntitySetId) {
+        return newSelect("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID", alias)
+        .from("ASYS_PERMISSIONSET")
+        .where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", pEntitySetId)
+        .and("ASYS_PERMISSIONSET.ACCESSTYPE", PermissionEnums.ACCESSTYPE_RECORD())
+        .arrayColumn();
+    }
+    
 } //end of block