From 048c320ade5dc95fca4dce70bc77bec421412a48 Mon Sep 17 00:00:00 2001
From: Simon Leipold <s.leipold@adito.de>
Date: Mon, 5 Aug 2019 14:00:45 +0200
Subject: [PATCH] Permissions - default permission for role everyone gets
 created in autostart instead of contentPorcess of PermissionOverview

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

diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
index 2c418c0fb6..6bea9cea97 100644
--- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
@@ -9,7 +9,6 @@ var roleTitle = "";
 var entityTitle = "";
 var sqlCond = "";
 var sqlStr = "";
-var roleInternalEveryone = "INTERNAL_EVERYONE";
 
 var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
 var entitiesUsePermFlagSet = []; // array, which contains ids of entities with usePermission flag set
@@ -18,11 +17,6 @@ var entitiesUsePermFlagSet = []; // array, which contains ids of entities with u
 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.insertNewPermissionSet("", entityMetaData[0], roleInternalEveryone, "", "E");
-            PermissionUtil.insertNewPermission(noAccessPermissionSetIdEntity, "", "false"); // false is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E"
-        }
     }
 }
 
diff --git a/process/autostartNeon/process.js b/process/autostartNeon/process.js
index aa471725ac..24001259d3 100644
--- a/process/autostartNeon/process.js
+++ b/process/autostartNeon/process.js
@@ -1,3 +1,5 @@
+import("Permission_lib");
+import("system.project");
 import("system.logging");
 import("system.tools");
 import("system.calendars")
@@ -15,3 +17,20 @@ 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, edit, delete         
+            var noAccessPermissionSetIdEntity = PermissionUtil.insertNewPermissionSet("", entityMetaData[0], roleInternalEveryone, "", "E");
+            PermissionUtil.insertNewPermission(noAccessPermissionSetIdEntity, "", "false"); // false is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E"
+        }
+    }
+}
-- 
GitLab