diff --git a/entity/PermissionAction_entity/PermissionAction_entity.aod b/entity/PermissionAction_entity/PermissionAction_entity.aod index 96c5c67d0f9d96a2cc7b678df60e606df25c4d56..337c7d2917caf6d9b662d536c22dbc08b81b4011 100644 --- a/entity/PermissionAction_entity/PermissionAction_entity.aod +++ b/entity/PermissionAction_entity/PermissionAction_entity.aod @@ -3,6 +3,7 @@ <name>PermissionAction_entity</name> <majorModelMode>DISTRIBUTED</majorModelMode> <title>Action</title> + <onValidation>%aditoprj%/entity/PermissionAction_entity/onValidation.js</onValidation> <titlePlural>Actions</titlePlural> <recordContainer>jDito</recordContainer> <entityFields> diff --git a/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js b/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js index 6d764649337c7a3450a15a2957868ff37cd96dbf..6da1b8813f6e8ecff62b82479153d7c2e4606b68 100644 --- a/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js +++ b/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js @@ -25,71 +25,4 @@ switch (accesstype) { ] } -result.object(actions); - - -//############################################################################# -//################only show actions which are not yet in the DB################ -//##########################not done yet####################################### -//############################################################################# -//import("system.logging"); -//import("Permission_lib"); -//import("system.vars"); -//import("system.result"); -// -//var permisson = vars.get("$param.PermissionId_param"); -//var actionIdsInDb = PermissionUtil.getPermissionAction(permisson); -//var actionsInDb = []; -//for each (var actionId in actionIdsInDb) { -// actionsInDb.push(PermissionUtil.resolvePermissionActionId(actionId)); -//} -// -//var entityActions = ["view", "create"]; -//var recordActions = ["read", "update", "delete"]; -//var fieldActions = ["read", "update"]; -//var diff; -// -//var accesstype = vars.get("$param.AccessType_param"); -//var actions = []; -// -//switch (accesstype) { -// case "E": -// diff = arrDiff(actionsInDb, entityActions); -// break; -// case "R": -// diff = arrDiff(actionsInDb, recordActions); -// break; -// case "F": -// diff = arrDiff(actionsInDb, fieldActions); -// break; -//} -// -//for each (let entry in diff) { -// actions.push([entry, entry]); -//} -// -//result.object(actions); -// -//// arrDiff calculates different elements of two arrays and returns them as array, otherwise empty array -//function arrDiff (arr1, arr2) { -// var helperArr = [], diff = []; -// -// for (let i = 0; i < arr1.length; i++) { -// helperArr[arr1[i]] = true; -// } -// -// for (let i = 0; i < arr2.length; i++) { -// if (helperArr[arr2[i]]) { -// delete helperArr[arr2[i]]; -// } -// else { -// helperArr[arr2[i]] = true; -// } -// } -// -// for (var k in helperArr) { -// diff.push(k); -// } -// -// return diff; -//} \ No newline at end of file +result.object(actions); \ No newline at end of file diff --git a/entity/PermissionAction_entity/onValidation.js b/entity/PermissionAction_entity/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..d82b59851b67598cf9e105caa38bfae9f9d07c6d --- /dev/null +++ b/entity/PermissionAction_entity/onValidation.js @@ -0,0 +1,19 @@ +import("system.vars"); +import("system.translate"); +import("system.result"); +import("Permission_lib"); + +var permissionId = vars.get("$param.PermissionId_param"); +var actionTitle = vars.get("$field.ACTION"); + +if (PermissionUtil.existsPermission(permissionId)) { + // existing permission + // check if action is already in DB + var actionsInDb = PermissionUtil.getPermissionAction(permissionId); + for each (var action in actionsInDb) { + if (PermissionUtil.resolvePermissionActionId(action) == actionTitle) { + result.string(translate.text("Action '" + actionTitle + "' already linked to this permission!")); + break; + } + } +} \ No newline at end of file diff --git a/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js index f7e1c66e82ec846dd37c2b2c5510c1a4642421cf..3acce8156ad069e0f495f8793e8e202a86b8c4db 100644 --- a/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js +++ b/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.db"); import("system.tools"); import("system.result");