Skip to content
Snippets Groups Projects
Commit d21278e5 authored by Simon Leipold's avatar Simon Leipold
Browse files

Permissions - bug fix: PermissionDetails onDelete

parent 084d2058
No related branches found
No related tags found
No related merge requests found
......@@ -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
......@@ -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
......
......@@ -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;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment