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

Permissions - bugfixes for insert/edit/delete of permissions

parent 9649d3e2
No related branches found
No related tags found
No related merge requests found
Showing
with 93 additions and 34 deletions
......@@ -28,6 +28,7 @@
<mandatory v="true" />
<groupable v="true" />
<valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/valueProcess.js</valueProcess>
<displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>ENTITY</name>
......@@ -37,6 +38,7 @@
<mandatory v="true" />
<groupable v="true" />
<valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js</valueProcess>
<displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>FIELD</name>
......@@ -56,13 +58,14 @@
<consumer>KeywordAccessType</consumer>
<mandatory v="true" />
<groupable v="true" />
<valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js</valueProcess>
<displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>CONDTYPE</name>
<title>Condition Type</title>
<consumer>KeywordConditionType</consumer>
<mandatory v="true" />
<displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>PARENT</name>
......
//import("system.vars");
//import("system.result");
//
//var field = vars.get("$field.FIELD");
//
//if (field != undefined && field != null && field != "") {
// result.string("Feld");
//} else {
// result.string("");
//}
\ No newline at end of file
//import("system.vars");
//import("system.result");
//
//var field = vars.get("$field.FIELD");
//
//if (field != undefined && field != null && field != "") {
// result.string("F");
//} else {
// result.string("");
//}
\ No newline at end of file
import("system.result");
import("system.vars");
import("Keyword_lib");
import("KeywordRegistry_basic");
result.string(KeywordUtils.getViewValue($KeywordRegistry.permissionCondType(), vars.get("$field.CONDTYPE")));
//import("system.vars");
//import("system.result");
//import("system.neon");
//
//let recordstate = vars.get("$sys.recordstate");
//
//if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
// result.string(vars.getString("$param.EntityTitle_param"));
//}
\ No newline at end of file
import("system.vars");
import("system.result");
import("system.neon");
if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.exists("$param.EntityTitle_param")) {
result.string(vars.getString("$param.EntityTitle_param"));
}
\ No newline at end of file
//import("system.vars");
//import("system.result");
//import("system.neon");
//
//let recordstate = vars.get("$sys.recordstate");
//
//if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
// result.string(vars.getString("$param.EntityTitle_param"));
//}
\ No newline at end of file
//import("system.vars");
//import("system.result");
//import("system.neon");
//
//var recordstate = vars.get("$sys.recordstate");
//
//if (vars.exists("$param.RoleTitle_param")) {
// var role = vars.get("$param.RoleTitle_param");
//
// if(role != undefined && role != null && role != "" && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
// res = role.split("_");
// result.string(res[1]);
// }
//}
\ No newline at end of file
import("system.vars");
import("system.result");
import("system.neon");
if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.exists("$param.RoleTitle_param")) {
result.string(vars.getString("$param.RoleTitle_param"));
}
\ No newline at end of file
//import("system.vars");
//import("system.result");
//import("system.neon");
//
//let recordstate = vars.get("$sys.recordstate");
//
//if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
// result.string(vars.getString("$param.RoleTitle_param"));
//}
\ No newline at end of file
......@@ -6,6 +6,7 @@ var permId = vars.get("$field.UID");
var accessType = vars.get("$field.ACCESSTYPE");
var parentPermSetId = PermissionUtil.getParentPermissionSet(permId);
var linkedActions = PermissionUtil.getAllChildPermissionActions(permId);
var alias = "_____SYSTEMALIAS";
var sqlCondDelAction = SqlCondition.begin()
.and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + linkedActions.join("','") + "')")
......@@ -34,16 +35,16 @@ switch (accessType) {
.and("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID in ('" + allPermSets.join("','") + "')")
.build();
db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction); // delete all actions
db.deleteData("ASYS_PERMISSION", sqlCondDelPerm); // delete all permissions
db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet); // delete all permission sets
db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction, alias); // delete all actions
db.deleteData("ASYS_PERMISSION", sqlCondDelPerm, alias); // delete all permissions
db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete all permission sets
break;
default:
db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction); // delete all actions of the selected permission
db.deleteData("ASYS_PERMISSION", sqlCondDelPerm); // delete the selected permission
db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction, alias); // delete all actions of the selected permission
db.deleteData("ASYS_PERMISSION", sqlCondDelPerm, alias); // delete the selected permission
break;
}
if (PermissionUtil.permSetIsEmpty(parentPermSetId)) {
db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet); // delete empty permissionset
db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete empty permissionset
}
import("Permission_lib");
import("system.logging");
import("system.neon");
import("system.util");
......@@ -6,6 +7,7 @@ import("system.vars");
import("Permission_lib");
var table, cols, vals;
var alias = "_____SYSTEMALIAS";
var sqlExt = "";
var permissionid = util.getNewUUID();
var role = vars.get("$field.ROLE");
......@@ -25,7 +27,7 @@ if (checkInput([role, entity, accesstype, condtype, action])) {
sqlExt += " and ACCESSTYPE = 'R'";
var sqlStr = "select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET where ENTITY_ID = '" + entity + "' and ROLE_ID = '" + role + "'" + sqlExt;
var permissionsetid = db.cell(sqlStr);
var permissionsetid = db.cell(sqlStr, alias);
if (permissionsetid == "") {
// no fitting permissionset found - insert new permissionset
......@@ -76,6 +78,6 @@ function permExists(pRole, pEntity, pField, pAccesstype, pCondtype, pCondition)
+ " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID"
+ " where ENTITY_ID = '" + pEntity + "' and ROLE_ID = '" + pRole + "'"
+ " and ACCESSTYPE = '" + pAccesstype + "' and CONDTYPE = '" + pCondtype + "'" + sqlExt;
var permId = db.cell(sqlStr);
var permId = db.cell(sqlStr, alias);
return permId;
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import("Permission_lib");
var table, cols, vals, cond;
var alias = "_____SYSTEMALIAS";
var permissionid = vars.get("$field.UID");
var actionNew = vars.get("$field.ACTION").split(",");
var entityNew = vars.get("$field.ENTITY");
......@@ -17,7 +18,7 @@ if (diff.length > 0) {
// delete all linked permission actions
table = "ASYS_PERMISSIONACTION";
cond = SqlCondition.begin().and("ASYS_PERMISSION_ID = '" + permissionid + "'").build();
var dbDeletes = db.deleteData(table, cond);
var dbDeletes = db.deleteData(table, cond, alias);
// insert the different actions
cols = db.getColumns(table);
......
import("system.vars");
import("system.result");
result.string(vars.get("$field.TITLE"));
\ No newline at end of file
result.string(vars.get("$field.UID"));
\ No newline at end of file
......@@ -325,6 +325,17 @@ PermissionUtil.permSetIsEmpty = function(pPermSetId) {
return false;
}
/**
* Returns all PermissionSets, Permissions and PermissionActions.
*
* @result {String[]) all PermissionSets, Permissions and PermissionActions
*/
PermissionUtil.getCompleteStructure = function() {
return db.table("select ASYS_PERMISSIONSET.ENTITY_ID, ASYS_PERMISSIONSET.ROLE_ID, ASYS_PERMISSIONSET.FIELD_ID, ASYS_PERMISSIONSET.ACCESSTYPE, ASYS_PERMISSION.COND, ASYS_PERMISSION.CONDTYPE, ASYS_PERMISSIONACTION.ACTION from ASYS_PERMISSIONSET"
+ " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID"
+ " join ASYS_PERMISSIONACTION on ASYS_PERMISSIONACTION.ASYS_PERMISSION_ID = ASYS_PERMISSION.ASYS_PERMISSIONID", alias);
}
/**
* Returns all permissions of the given permission sets.
*
......@@ -397,7 +408,7 @@ PermissionUtil.containsDuplicateActions = function(pPermId, pActionNew) {
*/
PermissionUtil.insertNewPermissionSet = function(pParentPermSet, pEntity, pRole, pField, pAccessType) {
var table = "ASYS_PERMISSIONSET";
var cols = db.getColumns(table);
var cols = db.getColumns(table, alias);
var permsetid = util.getNewUUID();
var vals = [pAccessType, permsetid, pParentPermSet, pEntity, pField, pRole];
db.insertData(table, cols, null, vals, alias);
......@@ -417,7 +428,7 @@ PermissionUtil.insertNewPermissionSet = function(pParentPermSet, pEntity, pRole,
*/
PermissionUtil.insertNewPermission = function(pParentPermSet, pCond, pCondType) {
var table = "ASYS_PERMISSION";
var cols = db.getColumns(table);
var cols = db.getColumns(table, alias);
var permid = util.getNewUUID();
var vals = [permid, pParentPermSet, pCond, pCondType];
db.insertData(table, cols, null, vals, alias);
......@@ -435,7 +446,7 @@ PermissionUtil.insertNewPermission = function(pParentPermSet, pCond, pCondType)
*/
PermissionUtil.insertNewPermissionAction = function(pParentPerm, pAction) {
var table = "ASYS_PERMISSIONACTION";
var cols = db.getColumns(table);
var cols = db.getColumns(table, alias);
var permactionid = util.getNewUUID();
var vals = [pAction, permactionid, pParentPerm];
db.insertData(table, cols, null, vals, alias);
......
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