diff --git a/entity/PermissionAction_entity/PermissionAction_entity.aod b/entity/PermissionAction_entity/PermissionAction_entity.aod index 337c7d2917caf6d9b662d536c22dbc08b81b4011..6092f3cce0d86a0052ed44fb3a540fe7329b45ad 100644 --- a/entity/PermissionAction_entity/PermissionAction_entity.aod +++ b/entity/PermissionAction_entity/PermissionAction_entity.aod @@ -48,6 +48,10 @@ <name>AccessType_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>PermissionCondition_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/PermissionAction_entity/onValidation.js b/entity/PermissionAction_entity/onValidation.js index d82b59851b67598cf9e105caa38bfae9f9d07c6d..e97725af0b6c953e10fdabce940ff4bead540594 100644 --- a/entity/PermissionAction_entity/onValidation.js +++ b/entity/PermissionAction_entity/onValidation.js @@ -1,17 +1,23 @@ +import("system.db"); import("system.vars"); import("system.translate"); import("system.result"); import("Permission_lib"); -var permissionId = vars.get("$param.PermissionId_param"); +var alias = "_____SYSTEMALIAS"; var actionTitle = vars.get("$field.ACTION"); +var permissionId = vars.get("$param.PermissionId_param"); +var permCondInput = vars.get("$param.PermissionCondition_param"); if (PermissionUtil.existsPermission(permissionId)) { // existing permission // check if action is already in DB var actionsInDb = PermissionUtil.getPermissionAction(permissionId); + var sqlStr = "select COND from ASYS_PERMISSION where ASYS_PERMISSIONID='" + permissionId + "'"; + var permCondDb = db.cell(sqlStr, alias); + for each (var action in actionsInDb) { - if (PermissionUtil.resolvePermissionActionId(action) == actionTitle) { + if (PermissionUtil.resolvePermissionActionId(action) == actionTitle && permCondInput == permCondDb) { result.string(translate.text("Action '" + actionTitle + "' already linked to this permission!")); break; } diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod index 62d48dbd8e368f71c1fa3bda319bb1ff5731a460..1f674316df068c350856880b1f1ba2e5cdc87853 100644 --- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod +++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod @@ -188,6 +188,10 @@ <name>AccessType_param</name> <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/permissionactions/children/accesstype_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>PermissionCondition_param</name> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissioncondition_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> </entityFields> diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissioncondition_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissioncondition_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..13699cb90d170236ada6231abba8ab035aaf7bfe --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissioncondition_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.result"); +result.string(vars.get("$field.CONDITION")); \ No newline at end of file