From 0d50425af81d1f2a2d3c37fd3fd93dd73f2a9894 Mon Sep 17 00:00:00 2001
From: Simon Leipold <s.leipold@adito.de>
Date: Thu, 24 Oct 2019 11:55:56 +0200
Subject: [PATCH] Permissions - displaying five X's for role INTERNAL_EVERYONE
 without permissions

---
 .../recordcontainers/jdito/contentProcess.js  | 21 +++++++++++++------
 process/autostartNeon/process.js              | 19 +----------------
 2 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
index 1eb5be5c63..600f35a746 100644
--- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("Sql_lib");
 import("system.project");
 import("system.vars");
@@ -19,12 +20,7 @@ var entitiesUsePermFlagSet = []; // array, which contains ids of entities with u
 // gets all names of the entites which have the 'usePermission'-flag set (positive list)
 for each (let entityMetaData in entitiesMetaData) {
     if (entityMetaData[6] == "true") {
-        entitiesUsePermFlagSet.push(entityMetaData[0])
-        if (PermissionUtil.getNumberOfPermissions(entityMetaData[0]) == 0) {
-            // no permissions found for the given entity -> create permissionset for role INTERNAL_EVERYONE with five X's for view, create, read, edit, delete         
-            var noAccessPermissionSetIdEntity = PermissionUtil.insertSet("", entityMetaData[0], roleInternalEveryone, "", "E");
-            PermissionUtil.insertPermission(noAccessPermissionSetIdEntity, "", 0); // 0 is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E"
-        }
+        entitiesUsePermFlagSet.push(entityMetaData[0]);
     }
 }
 
@@ -32,10 +28,23 @@ var sqlCondEntityUsePermFlagSet = " and ENTITY_ID in ('" + entitiesUsePermFlagSe
 
 if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
     roleTitle = vars.getString("$param.RoleTitle_param");
+    if (roleTitle == roleInternalEveryone) {
+        var counter = 0;
+        for each (let entityUsePermFlagSet in entitiesUsePermFlagSet) {
+            if (PermissionUtil.getNumberOfPermissions(entityUsePermFlagSet, roleTitle) == 0) {
+                // no permissions for INTERNAL_EVERYONE found -> display X's for all actions
+                res.push(["NOREALPERMINDB" + counter++, entityUsePermFlagSet, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
+            }
+        }
+    }
     sqlCond = " where ROLE_ID = '" + roleTitle + "'";
     sqlStr = "select distinct ENTITY_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
 } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
     entityTitle = vars.getString("$param.EntityTitle_param");
+    if (PermissionUtil.getNumberOfPermissions(entityTitle, roleInternalEveryone) == 0) {
+        // no permissions for INTERNAL_EVERYONE found -> display X's for all actions
+        res.push(["NOREALPERMINDB", roleInternalEveryone, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
+    }
     sqlCond = " where ENTITY_ID = '" + entityTitle + "'";
     sqlStr = "select distinct ROLE_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
 }
diff --git a/process/autostartNeon/process.js b/process/autostartNeon/process.js
index 03e2714f7e..daee3c2fdc 100644
--- a/process/autostartNeon/process.js
+++ b/process/autostartNeon/process.js
@@ -15,21 +15,4 @@ for(var i = 0; i < usersTools.length; i++)
 }
 
 calendars.setCalendarUser(users, calendars.RIGHT_READ | calendars.RIGHT_WRITE, false, calendars.SORTSTRATEGY_NATURAL);
-calendars.setCheckAttendeesOnWrite(false);
-
-// permissions - creating default permission (with no actions) for role everyone
-var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
-var entitiesUsePermFlagSet = []; // array, which contains ids of entities with usePermission flag set
-var roleInternalEveryone = "INTERNAL_EVERYONE";
-
-// gets all names of the entites which have the 'usePermission'-flag set (positive list)
-for each (let entityMetaData in entitiesMetaData) {
-    if (entityMetaData[6] == "true") {
-        entitiesUsePermFlagSet.push(entityMetaData[0])
-        if (PermissionUtil.getNumberOfPermissions(entityMetaData[0]) == 0) {
-            // no permissions found for the given entity -> create permissionset for role INTERNAL_EVERYONE with five X's for view, create, read, update, delete         
-            var noAccessPermissionSetIdEntity = PermissionUtil.insertSet("", entityMetaData[0], roleInternalEveryone, "", "E");
-            PermissionUtil.insertPermission(noAccessPermissionSetIdEntity, "", 0); // 0 is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E"
-        }
-    }
-}
+calendars.setCheckAttendeesOnWrite(false);
\ No newline at end of file
-- 
GitLab