diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod index f0a82c5aa6b0788a8d94fec043967cbcf81985c9..2d5c67c902415cce49a0ba2dcc9025e926f8bb04 100644 --- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod +++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod @@ -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> diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9df8d712eee4cf4f0f8f8e22fc25055e5317feb1 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js @@ -0,0 +1,10 @@ +//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 diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..52f53388aaf11d9798dbbaf75ef94d75c845ca66 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js @@ -0,0 +1,10 @@ +//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 diff --git a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js deleted file mode 100644 index 40f4ec0027f0957050655dbed1245713dc9bc0aa..0000000000000000000000000000000000000000 --- a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -result.string(KeywordUtils.getViewValue($KeywordRegistry.permissionCondType(), vars.get("$field.CONDTYPE"))); diff --git a/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..241d200ca45711a39e1510eeb6495571d3d5bf43 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js @@ -0,0 +1,9 @@ +//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 diff --git a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js index ace2def782d998df24500b8fb7e0792e651e77da..241d200ca45711a39e1510eeb6495571d3d5bf43 100644 --- a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js @@ -1,7 +1,9 @@ -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 diff --git a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d4c1d911ed4092ccc4722b9ad12ab9a09245efee --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js @@ -0,0 +1,14 @@ +//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 diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js index ce210d3aefbd85ebf0b4fc106ea5a25976284f1b..cc6b48287a7398af7dfe6108b1f9849097020746 100644 --- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js @@ -1,7 +1,9 @@ -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 diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js index adbb5889dfbc2e9884b322c4c414d757417c9764..f2c594edd7ecb9d5c67cf14ba6d301816a7e2ea6 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js @@ -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 } diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js index 09f7f0299b4cbdf82e2f2685de085b1f33c2667c..2e3cd82309cff93e3a4c4f923c51c820d4139aa2 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js @@ -1,3 +1,4 @@ +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 diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js index 0be080b802108b6f7314816b25ce3fecc3ff6969..e2cc6a303bf6f4fa3ab2d6bbb71622e955687cef 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js @@ -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); diff --git a/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js index f7920ec1e28cce2af69f1ef57710f594d31d2553..3ef775221bdfb9a2437415fee17f99c35f7b206f 100644 --- a/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js +++ b/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js @@ -1,3 +1,3 @@ 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 diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js index 247e338f2c54651cb0f723440591160303771887..0c0713045eb3915368a1b9acc27506921c484333 100644 --- a/process/Permission_lib/process.js +++ b/process/Permission_lib/process.js @@ -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);