From 64d1506bc3a2d190b814487cf033e04499727c5b Mon Sep 17 00:00:00 2001 From: Simon Leipold <s.leipold@adito.de> Date: Fri, 7 Jun 2019 13:24:04 +0200 Subject: [PATCH] Permissions - fixed behavior when usePermission-flag gets removed --- .../entityfields/field/dropDownProcess.js | 8 ++++---- .../recordcontainers/jdito/contentProcess.js | 14 +++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js index 123b0887b4..531be41df5 100644 --- a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js +++ b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js @@ -3,9 +3,9 @@ import("system.vars"); import("system.project"); var entityTitle = vars.get("$field.ENTITY"); +var res = []; if (entityTitle != undefined && entityTitle != null && entityTitle != "") { var entityStructure = project.getEntityStructure(entityTitle); - var res = []; for (var field in entityStructure.fields) { field = entityStructure.fields[field]; @@ -13,11 +13,11 @@ if (entityTitle != undefined && entityTitle != null && entityTitle != "") { var name = field.name; var title = field.title; if (title != undefined && title != null && title != "") { - res.push([title, title]); + res.push([name, title]); } else { res.push([name, name]); } } } - result.object(res); -} \ No newline at end of file +} +result.object(res); \ No newline at end of file diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js index a8b9087169..055d366a91 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.util"); import("system.vars"); import("system.db"); @@ -10,16 +11,27 @@ var sqlStr; var whereCond = " where"; var alias = "_____SYSTEMALIAS"; var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY); +var entityStructure; var entitiesUsePermFlagSet = []; +var fieldsUsePermFlagSet = []; // gets all names of the entites which have the 'usePermission'-flag set (positive list) +// gets all names of the fields which have the 'usePermission'-flag set (positive list) for each (let entityMetaData in entitiesMetaData) { if (entityMetaData[6] == "true") { entitiesUsePermFlagSet.push(entityMetaData[0]) - } + entityStructure = project.getEntityStructure(entityMetaData[0]); + for (fieldname in entityStructure.fields) { + field = entityStructure.fields[fieldname]; + if (field.usePermissions == true) { + fieldsUsePermFlagSet.push(field.name); + } + } + } } whereCond += " ENTITY_ID in ('" + entitiesUsePermFlagSet.join("','") + "')"; +whereCond += " and (FIELD_ID in ('" + fieldsUsePermFlagSet.join("','") + "') or FIELD_ID is NULL)"; if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { whereCond += " and ASYS_PERMISSIONSET.ROLE_ID = '" + vars.getString("$param.RoleTitle_param") + "'"; -- GitLab