diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js index 0b7c58f751bba0d8b8e570521d4243830439f783..2da1099bbc36332519d87a91ed9da6a9a7ed105e 100644 --- a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js @@ -24,6 +24,13 @@ var deletedRows = vars.get("$field.PermissionActions.deletedRows"); var changedRows = vars.get("$field.PermissionActions.changedRows"); var insertedRows = vars.get("$field.PermissionActions.insertedRows"); +for each (let row in insertedRows) { + if (row.ACTION == "") { + result.string(translate.text("Empty actions are not allowed!")); + break; + } +} + if (deletedRows.length == actionsAsStringArray.length && changedRows.length == 0 && insertedRows.length == 0) { result.string(translate.text("Permissions without actions are not allowed!")); } @@ -32,14 +39,14 @@ if (PermissionUtil.permissionExists(permId)) { // old permission // insert only possible, if the same action is not already linked to the permission for each (let row in insertedRows) { - var actionGotJustDelted = false; + var actionHasJustBeenDeleted = false; if (PermissionUtil.actionExists(row.ACTION, permId)) { for each (let delRow in deletedRows) { if (row.ACTION == delRow.ACTION) { - actionGotJustDelted = true; + actionHasJustBeenDeleted = true; } } - if (!actionGotJustDelted) { + if (!actionHasJustBeenDeleted) { result.string(translate.text("Action '" + row.ACTION + "' already linked to this permission.")); } } @@ -79,21 +86,21 @@ if (PermissionUtil.permissionExists(permId)) { if (insertedRows.length > 0) { switch (accesstype) { case "E": - if (actionsInDb.length >= allowedNumberOfActionsForEntityPermissions && !actionGotJustDelted) { + if (actionsInDb.length >= allowedNumberOfActionsForEntityPermissions && !actionHasJustBeenDeleted) { result.string(translate.text("Only " + allowedNumberOfActionsForEntityPermissions + " actions allowed for this type of permission.")); } break; case "R": - if (actionsInDb.length >= allowedNumberOfActionsForRecordPermission && !actionGotJustDelted) { + if (actionsInDb.length >= allowedNumberOfActionsForRecordPermission && !actionHasJustBeenDeleted) { result.string(translate.text("Only " + allowedNumberOfActionsForRecordPermission + " actions allowed for this type of permission.")); } break; case "F": - if (actionsInDb.length >= allowedNumberOfActionsForFieldPermissions && !actionGotJustDelted) { + if (actionsInDb.length >= allowedNumberOfActionsForFieldPermissions && !actionHasJustBeenDeleted) { result.string(translate.text("Only " + allowedNumberOfActionsForFieldPermissions + " actions allowed for this type of permission.")); } break; default: - result.string(translate.text("This error should never appear - contact administrator.")); + result.string(translate.text("This error should never appear - contact administrator (PermissionDetail_entity.PermissionAction.onValidation).")); } } \ 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 9e14cbbfbfc23c51aec6e92da12ecbb3f186a563..54100375b14cef0becd2fabc1ca5fc5a5ab15f9f 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js @@ -5,11 +5,11 @@ import("system.db"); import("system.vars"); import("Permission_lib"); +var alias = SqlUtils.getSystemAlias(); var permId = vars.get("$field.UID"); var accessType = vars.get("$field.ACCESSTYPE"); var parentPermSetId = PermissionUtil.getParentSet(permId); -var linkedActions = PermissionUtil.getActionsOfSet(permId); -var alias = SqlUtils.getSystemAlias(); +var linkedActions = PermissionUtil.getActions([permId]); var sqlCondDelAction = SqlCondition.begin() .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + linkedActions.join("','") + "')") @@ -29,14 +29,14 @@ switch (accessType) { var allPermActions = PermissionUtil.getActions(allPerms); sqlCondDelAction = SqlCondition.begin() - .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + allPermActions.join("','") + "')") - .build(); + .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + allPermActions.join("','") + "')") + .build(); sqlCondDelPerm = SqlCondition.begin() - .and("ASYS_PERMISSION.ASYS_PERMISSIONID in ('" + allPerms.join("','") + "')") - .build(); + .and("ASYS_PERMISSION.ASYS_PERMISSIONID in ('" + allPerms.join("','") + "')") + .build(); sqlCondDelPermSet = SqlCondition.begin() - .and("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID in ('" + allPermSets.join("','") + "')") - .build(); + .and("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID in ('" + allPermSets.join("','") + "')") + .build(); db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction, alias); // delete all actions db.deleteData("ASYS_PERMISSION", sqlCondDelPerm, alias); // delete all permissions diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js index f59aa345d2aab771f0a5e7f3aa17631fbd3471d0..bfe618882b42cfbdb8510f15b31f3051c89116d9 100644 --- a/process/Permission_lib/process.js +++ b/process/Permission_lib/process.js @@ -299,7 +299,7 @@ function PermissionUtil () {} var subPerms = PermissionUtil.getPermissions([pSetId]); var subActions = PermissionUtil.getActionsOfSet(pSetId); - if (subActions.length == 0 && subPerms == 0 && subSets == 0) + if (subActions.length == 0 && subPerms.length == 0 && subSets.length == 0) return true; return false; }