From f10caaed138aaf3928238941dbddb785ba86c64e Mon Sep 17 00:00:00 2001 From: Simon Leipold <s.leipold@adito.de> Date: Mon, 27 May 2019 13:05:10 +0200 Subject: [PATCH] Permissions - refreshing after del/edit, refactoring and fixing display value bugs --- .../PermissionDetail_entity.aod | 1 - .../accesstype/displayValueProcess.js | 33 +++++++++++++++---- .../entityfields/condtype/valueProcess.js | 3 -- .../recordcontainers/jdito/onDelete.js | 3 ++ .../recordcontainers/jdito/onUpdate.js | 3 ++ 5 files changed, 33 insertions(+), 10 deletions(-) delete mode 100644 entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod index 3ed12925636..254f12ad6aa 100644 --- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod +++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod @@ -66,7 +66,6 @@ <title>Condition Type</title> <consumer>KeywordConditionType</consumer> <mandatory v="true" /> - <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess> </entityField> <entityField> diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js index fe3b117045c..834f79bd2a7 100644 --- a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js @@ -1,18 +1,39 @@ +import("system.neon"); import("system.vars"); import("system.result"); import("Permission_lib"); +var operatingState = vars.get("$sys.operatingstate"); var field = vars.get("$field.FIELD"); var role = vars.get("$field.ROLE"); var entity = vars.get("$field.ENTITY"); +var accesstype = vars.get("$field.ACCESSTYPE"); var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity); -if (rootPermSet == "") { - result.string("Entität"); +if (operatingState == neon.OPERATINGSTATE_SEARCH || neon.OPERATINGSTATE_VIEW) { + switch (accesstype) { + case "E": + result.string("Entität"); + break; + case "R": + result.string("Datensatz"); + break; + case "F": + result.string("Feld"); + break; + } } else { - result.string("Datensatz"); -} + // editing/creating a new permission + // if there is no permission set for a given role-entity-combination -> permission has to be Entity + // otherwise Record + // if $field.FIELD is filled, then its a permission on Field access level + if (rootPermSet == "") { + result.string("Entität"); + } else { + result.string("Datensatz"); + } -if (field != undefined && field != null && field != "") { - result.string("Feld"); + if (field != undefined && field != null && field != "") { + result.string("Feld"); + } } \ No newline at end of file diff --git a/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js deleted file mode 100644 index 6f1c35b0b91..00000000000 --- a/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js +++ /dev/null @@ -1,3 +0,0 @@ -import("system.result"); - -result.string("true"); \ No newline at end of file diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js index f2c594edd7e..372b60783ae 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js @@ -1,3 +1,4 @@ +import("system.neon"); import("system.db"); import("system.vars"); import("Permission_lib"); @@ -48,3 +49,5 @@ switch (accessType) { if (PermissionUtil.permSetIsEmpty(parentPermSetId)) { db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete empty permissionset } + +neon.refreshAll(); \ No newline at end of file diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js index 0cbb9dc17b7..7ccb059127d 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js @@ -1,3 +1,4 @@ +import("system.neon"); import("system.logging"); import("system.util"); import("system.db"); @@ -31,3 +32,5 @@ PermissionUtil.updateIfDiff(permissionid, permCond, "COND", "ASYS_PERMISSION"); PermissionUtil.updateIfDiff(permissionid, permCondType, "CONDTYPE", "ASYS_PERMISSION"); // updates CONDTYPE if the new condtype is different to CONDTYPE in DB // entity of children has to be changed/deleted/ignored? // PermissionUtil.updateIfDiff(PermissionUtil.getParentPermissionSet(permissionid), entityNew, "ENTITY_ID", "ASYS_PERMISSIONSET"); + +neon.refreshAll(); \ No newline at end of file -- GitLab