diff --git a/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js b/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js index 5acbe1fae9747b958253205861b77d6146f730c4..73d5cfdaf1c44b86596fb094b8542ea4f67f83cf 100644 --- a/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js +++ b/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js @@ -10,7 +10,6 @@ var actionTitle = vars.get("$field.ACTION"); var permissionId = vars.get("$param.PermissionId_param"); var permCondInput = vars.get("$param.PermissionCondition_param"); -//var deletedRows = vars.get("$field." + pConsumerField + ".deletedRows"); var deletedRows = vars.get("$field.PermissionDetails.deletedRows"); if (actionTitle == "null" || actionTitle == undefined || actionTitle == null || actionTitle == "") { diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js index b2d03cddfd3d69a149c8899b5238826dc20c15e6..327e3f48bfe87797eb4f122b038302ea716de517 100644 --- a/entity/PermissionDetail_entity/contentTitleProcess.js +++ b/entity/PermissionDetail_entity/contentTitleProcess.js @@ -1,3 +1,4 @@ +import("Permission_lib"); import("system.logging"); import("system.project"); import("system.vars"); @@ -5,7 +6,7 @@ import("system.result"); var res = ""; var entityName = vars.get("$field.ENTITY"); -var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; +var emptyCond = PermissionUtil.getEmptyCondString(entityName); switch (vars.get("$field.ACCESSTYPE")) { case "E": @@ -31,7 +32,7 @@ switch (vars.get("$field.ACCESSTYPE")) { } if (vars.get("$field.ACCESSTYPE") != "E") { - if (vars.get("$field.CONDITION") != noCond && vars.get("$field.CONDITION") != "") { + if (vars.get("$field.CONDITION") != emptyCond && vars.get("$field.CONDITION") != "") { res += " - conditional"; } else { res += " - default"; diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js index 9c96cae90297332c2950e4286d6fb65e3a08bf72..846e5ce9a2c830aaf515c027bc94adf5566574ee 100644 --- a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js @@ -1,6 +1,5 @@ import("Sql_lib"); import("system.db"); -import("system.logging"); import("system.vars"); import("system.result"); import("Permission_lib"); @@ -9,18 +8,19 @@ var alias = SqlUtils.getSystemAlias(); var rootPermId; var entity = vars.get("$field.ENTITY"); var cond = vars.get("$field.CONDITION"); -var noCond = "{\"entity\":\"" + entity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; -var permSetId = PermissionUtil.getSet(vars.get("$field.ROLE"), vars.get("$field.ENTITY"), vars.get("$field.ACCESSTYPE")); +var field = vars.get("$field.FIELD"); +var emptyCond = PermissionUtil.getEmptyCondString(entity); +var permSetId = PermissionUtil.getSet(vars.get("$field.ROLE"), entity, vars.get("$field.ACCESSTYPE"), field); if (permSetId != "") { // check if default or conditional permission has to be returned - if (cond == "" || cond == noCond) { + if (cond == "" || cond == emptyCond) { rootPermId = PermissionUtil.getPermissionWithoutCond(permSetId); } else { - rootPermId = PermissionUtil.getPermissionWithCond(permSetId); + permsWithCond = PermissionUtil.getPermissionWithCond(permSetId); - for each (let perm in rootPermId) { - let sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION where cast(ASYS_PERMISSION.COND as varchar(" + cond.length + ")) = '" + cond + "'" + for each (let perm in permsWithCond) { + let sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION join ASYS_PERMISSIONSET on ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID = ASYS_PERMISSION.ASYS_PERMISSIONSET_ID where cast(ASYS_PERMISSION.COND as varchar(" + cond.length + ")) = '" + cond + "' and ASYS_PERMISSIONSET.FIELD_ID = '" + field + "'"; rootPermId = db.cell(sqlStr, alias); break; } diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js index 5cd31732a5198b2e28aca12013a732a5a323c5d8..6fbfa2b196b8083b2d8768f4e6f4877bad591817 100644 --- a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js @@ -9,17 +9,17 @@ var allowedNumberOfActionsForRecordPermission = 3; var allowedNumberOfActionsForEntityPermissions = 2; var allowedNumberOfActionsForFieldPermissions = 2; -var entityTitle = vars.get("$field.ENTITY"); +var entityName = vars.get("$field.ENTITY"); var roleTitle = vars.get("$field.ROLE"); var fieldTitle = vars.get("$field.FIELD"); var accesstype = vars.get("$field.ACCESSTYPE"); var permCondInput = vars.get("$field.CONDITION"); var permCondType = vars.get("$field.CONDTYPE"); -var permId = PermissionUtil.getPermission(roleTitle, entityTitle, fieldTitle, accesstype, permCondInput, permCondType); +var permId = PermissionUtil.getPermission(roleTitle, entityName, fieldTitle, accesstype, permCondInput, permCondType); var actionsInDb = PermissionUtil.getActions([permId]); var actionsAsStringArray = vars.get("$field.ACTION").split(","); // only useful while working with already existing permissions -var noCond = "{\"entity\":\"" + entityTitle + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; -var isDefaultPermission = (permCondInput != noCond && permCondInput != "") ? false : true; +var emptyCond = PermissionUtil.getEmptyCondString(entityName); +var isDefaultPermission = (permCondInput != emptyCond && permCondInput != "") ? false : true; var deletedRows = vars.get("$field.PermissionActions.deletedRows"); var changedRows = vars.get("$field.PermissionActions.changedRows"); @@ -53,7 +53,7 @@ if (PermissionUtil.permissionExists(permId)) { } // if conditional permission: check if action is already linked to default permission if (!isDefaultPermission) { - if (PermissionUtil.actionExists(row.ACTION, PermissionUtil.getPermissionWithoutCond(PermissionUtil.getSet(roleTitle, entityTitle, accesstype, fieldTitle)))) { + if (PermissionUtil.actionExists(row.ACTION, PermissionUtil.getPermissionWithoutCond(PermissionUtil.getSet(roleTitle, entityName, accesstype, fieldTitle)))) { result.string(translate.text("Action '" + row.ACTION + "' is already linked to the default permission.")); } } @@ -67,7 +67,7 @@ if (PermissionUtil.permissionExists(permId)) { } else { // new permission if (insertedRows.length > 0) { - var defaultPerm = PermissionUtil.getPermission(roleTitle, entityTitle, fieldTitle, accesstype, noCond); + var defaultPerm = PermissionUtil.getPermission(roleTitle, entityName, fieldTitle, accesstype, emptyCond); if (PermissionUtil.permissionExists(defaultPerm)) { var defaultActions = PermissionUtil.getActions([defaultPerm]); for each (let entry in insertedRows) { diff --git a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js index 52441e881a88129c5c236292600bfb1b747e1cbe..1ed9831e0531b173837d767eb334c302a27d8d74 100644 --- a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js @@ -8,7 +8,7 @@ var role = ""; if (vars.exists("$param.RoleTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) { role = vars.get("$param.RoleTitle_param"); } else { - role = vars.get("$field.ROLE"); + role = vars.get("$this.value"); } if(role != undefined && role != null && role != "") { diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js index d67b588f692d980b2940bdb21283d13909bc7a90..ca8a1a6040ec15a1814eac2221f0b5562ae1f327 100644 --- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js @@ -5,7 +5,7 @@ import("system.neon"); var recordstate = vars.get("$sys.recordstate"); var role = ""; -if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW)) { +if (vars.exists("$param.RoleTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) { role = vars.get("$param.RoleTitle_param"); } else { role = vars.get("$this.value"); diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js index f0c1c63ee3d89fd756f34cb44bcf3ad9b1a53a5d..a87e6aff761a7858aa094f1910c7a5148ed0585f 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js @@ -14,7 +14,7 @@ var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY); var entityStructure; var entitiesUsePermFlagSet = []; var fieldsUsePermFlagSet = []; -var noCond = "{\"entity\":\"" + vars.get("$field.ENTITY") + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; +var emptyCond = PermissionUtil.getEmptyCondString(vars.get("$field.ENTITY")); // gets all names of the entites which have the 'usePermission'-flag set (positive list) // gets all names of the fields which have the 'usePermission'-flag set (positive list) @@ -111,10 +111,10 @@ result.object(res); function prepareResultArray(pEntry, pRes) { var parentPermission = ""; - var noCond = "{\"entity\":\"" + pEntry.entity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + var emptyCond = PermissionUtil.getEmptyCondString(pEntry.entity); if (pEntry.accesstype != "E") { - if (pEntry.cond == "" || pEntry.cond == noCond) { // default permission + if (pEntry.cond == "" || pEntry.cond == emptyCond) { // default permission parentPermission = PermissionUtil.getPermissionWithoutCond(PermissionUtil.getParentSetOfSet(PermissionUtil.getParentSet(pEntry.permissionid))); } else { // conditional permission parentPermission = PermissionUtil.getPermissionWithoutCond(PermissionUtil.getParentSet(pEntry.permissionid)); @@ -167,28 +167,28 @@ function sortActions(actions, accesstype) { // sorts result array: Entity -> Records -> Fields function sortResultsByAccessTypes(a, b) { - var noCondA = "{\"entity\":\"" + a[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; - var noCondB = "{\"entity\":\"" + b[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + var emptyCondA = PermissionUtil.getEmptyCondString(a[1]); + var emptyCondB = PermissionUtil.getEmptyCondString(b[1]); if (a[6] == b[6] && a[6] == "E") return 0; else if (a[6] == "E") return -1; else if (b[6] == "E") return 1; else if (a[6] == "R" && b[6] == "F") return -1; else if (a[6] == "F" && b[6] == "R") return 1; - else if (a[6] == b[6] && (a[4] == "" || a[4] == noCondA)) return -1; - else if (a[6] == b[6] && (b[4] == "" || b[4] == noCondB)) return 1; + else if (a[6] == b[6] && (a[4] == "" || a[4] == emptyCondA)) return -1; + else if (a[6] == b[6] && (b[4] == "" || b[4] == emptyCondB)) return 1; else return 0; } // sorts result array: default permission -> conditional permission function sortResultsByCondition(a, b) { - var noCondA = "{\"entity\":\"" + a[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; - var noCondB = "{\"entity\":\"" + b[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + var emptyCondA = PermissionUtil.getEmptyCondString(a[1]); + var emptyCondB = PermissionUtil.getEmptyCondString(b[1]); - if (a[4] == "" || a[4] == noCond) return -1; - else if (b[4] == "" || b[4] == noCondB) return -1; - else if (a[4] != "" && a[4] != noCondA) return 1; - else if (b[4] != "" && b[4] != noCondB) return 1; + if (a[4] == "" || a[4] == emptyCond) return -1; + else if (b[4] == "" || b[4] == emptyCondB) return -1; + else if (a[4] != "" && a[4] != emptyCondA) return 1; + else if (b[4] != "" && b[4] != emptyCondB) return 1; else return 0; } diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js index d061d0fd357d1b6238aacb46f7e0ffc4f6ac480d..7a9dc109a5ca7ba782521f98555dc8c6ffe3a36e 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js @@ -10,7 +10,7 @@ var permId = vars.get("$field.UID"); var accessType = vars.get("$field.ACCESSTYPE"); var parentPermSetId = PermissionUtil.getParentSet(permId); var linkedActions = PermissionUtil.getActions([permId]); -var noCond = "{\"entity\":\"" + vars.get("$field.ENTITY") + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; +var emptyCond = PermissionUtil.getEmptyCondString(vars.get("$field.ENTITY")); var sqlCondDelAction = SqlCondition.begin() .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + linkedActions.join("','") + "')") @@ -44,7 +44,7 @@ switch (accessType) { db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete all permission sets break; default: - if (PermissionUtil.getCond(permId) == "" || PermissionUtil.getCond(permId) == noCond) { // check if permission is default or conditional permission + if (PermissionUtil.getCond(permId) == "" || PermissionUtil.getCond(permId) == emptyCond) { // check if permission is default or conditional permission // default permission -> also have to delete sub permissions let allPerms = PermissionUtil.getPermissionWithCond(PermissionUtil.getParentSet(permId)); allPerms.push(permId); diff --git a/entity/Role_entity/recordcontainers/jdito/contentProcess.js b/entity/Role_entity/recordcontainers/jdito/contentProcess.js index 181b3c9dbc75acb9fd6bf0e711645f761b563ecd..cac16db98487a53812c04296f0c2a3e9c6f7b04b 100644 --- a/entity/Role_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Role_entity/recordcontainers/jdito/contentProcess.js @@ -19,21 +19,26 @@ if (vars.exists("$param.ExcludeRoles_param") && vars.get("$param.ExcludeRoles_pa }, excludeRoles); } -if (selectedRole == null) { - for (let rolename in roles) { - let role = roles[rolename]; - if (!excludeRoles[rolename]) - res.push([rolename, role[0], role[1], role[2], 0]); +for (let rolename in roles) { + let role = roles[rolename]; + if (!excludeRoles[rolename]) { + let numberOfUsersInSelectedRole = tools.getUsersWithRole(rolename).length; + res.push([rolename, role[0], role[1], role[2], numberOfUsersInSelectedRole + " " + translate.text("User", locale)]); } -} else { - for (let rolename in roles) { - let role = roles[rolename]; - if (rolename == selectedRole) { - let numberOfUsersInSelectedRole = tools.getUsersWithRole(selectedRole).length; - res.push([rolename, role[0], role[1], role[2], numberOfUsersInSelectedRole + translate.text(" User", locale)]); - break; +} + +var ids = vars.get("$local.idvalues"); +if (ids != null) +{ + res = res.filter(function(resEntry) + { + for (let i = 0; i < ids.length; i++) + { + if (resEntry[0] == ids[i]) + return true; } - } + return false; + }); } result.object(res.sort()); \ No newline at end of file diff --git a/neonView/PermissionActionList_view/PermissionActionList_view.aod b/neonView/PermissionActionList_view/PermissionActionList_view.aod index ec908e041c67e371fd473d990d1147457b480a21..70b320c5f3e89cb72e06390af4cf9bd4e3fa75fc 100644 --- a/neonView/PermissionActionList_view/PermissionActionList_view.aod +++ b/neonView/PermissionActionList_view/PermissionActionList_view.aod @@ -8,6 +8,7 @@ <titleField></titleField> <fixedDrawer v="true" /> <entityField>#ENTITY</entityField> + <isEditable v="false" /> <columns> <neonTableColumn> <name>cc9ac8b7-e98b-4ce6-a0f0-204c05c1a3ce</name> diff --git a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod index bfb6897c91b80abc5b7a9091c7eacabec0e3aade..1d20aec23a2ad12191f51aa0986ef4183f994416 100644 --- a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod +++ b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod @@ -13,11 +13,13 @@ <iconField>#ICON</iconField> <titleField>#CONTENTTITLE</titleField> <entityField>#ENTITY</entityField> + <isEditable v="true" /> </cardViewTemplate> <genericViewTemplate> <name>Generic</name> <editMode v="true" /> <entityField>#ENTITY</entityField> + <isEditable v="false" /> <fields> <entityFieldLink> <name>dd33df7a-82e6-49a8-b35f-99d0187970e3</name> diff --git a/neonView/RoleFilter_view/RoleFilter_view.aod b/neonView/RoleFilter_view/RoleFilter_view.aod index 84d6f6e7145f817a34ccc97e861370f35d6e3b06..c527ece2832bff5eca05886343eb13f13e61b0eb 100644 --- a/neonView/RoleFilter_view/RoleFilter_view.aod +++ b/neonView/RoleFilter_view/RoleFilter_view.aod @@ -1,39 +1,47 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> - <name>RoleFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Table</name> - <iconField>#ICON</iconField> - <titleField>ROLETITLE</titleField> - <subtitleField>ROLETYPE</subtitleField> - <descriptionField>ROLEDESCRIPTION</descriptionField> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>29a4128c-c677-4b16-a167-febb20277a23</name> - <entityField>#ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>e6d9050e-3139-48cc-b186-085dab1cec89</name> - <entityField>ROLETITLE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>01743397-32b2-4c8a-b947-ba077baf311d</name> - <entityField>ROLETYPE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>7b269530-309a-4599-a392-f6e2651ccb65</name> - <entityField>ROLEDESCRIPTION</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>RoleFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <iconField>#ICON</iconField> + <titleField>ROLETITLE</titleField> + <subtitleField>ROLETYPE</subtitleField> + <descriptionField>ROLEDESCRIPTION</descriptionField> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>29a4128c-c677-4b16-a167-febb20277a23</name> + <entityField>#ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>954cb883-bf05-4807-b303-98b31bf8f75e</name> + <entityField>UID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e6d9050e-3139-48cc-b186-085dab1cec89</name> + <entityField>ROLETITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>01743397-32b2-4c8a-b947-ba077baf311d</name> + <entityField>ROLETYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>346c7722-bca5-4231-806f-b214fa47aaa1</name> + <entityField>USERCOUNT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7b269530-309a-4599-a392-f6e2651ccb65</name> + <entityField>ROLEDESCRIPTION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js index 839ebb63e5eb57d1dd372bf924762653236a5233..2945358652766047e5527a089434e60f446b14a8 100644 --- a/process/Permission_lib/process.js +++ b/process/Permission_lib/process.js @@ -16,6 +16,18 @@ function PermissionUtil () {} let alias = SqlUtils.getSystemAlias(); let sqlHelper = new SqlMaskingUtils(alias); + + /** + * Returns the default empty condition string for the given entity. + * + * @param {String} pEntity name of the entity + * + * @result {String} default empty condition string ({\"entity\":\"" + pEntity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}) + */ + PermissionUtil.getEmptyCondString = function (pEntity) + { + return "{\"entity\":\"" + pEntity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + } /** * Returns the ids of all subordinated permission sets of a given parent permission set. @@ -231,12 +243,12 @@ function PermissionUtil () {} PermissionUtil.getPermissionWithoutCond = function(pSetId) { var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pSetId + "'"; var entityName = db.cell(sqlStr, alias); - var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + var emptyCond = PermissionUtil.getEmptyCondString(entityName); sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION" + " where ASYS_PERMISSIONSET_ID = '" + pSetId + "'" + " and (COND is null" - + " or " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + noCond + "')"; + + " or " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + emptyCond + "')"; return db.cell(sqlStr, alias); } @@ -251,12 +263,12 @@ function PermissionUtil () {} PermissionUtil.getPermissionWithCond = function(pSetId) { var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pSetId + "'"; var entityName = db.cell(sqlStr, alias); - var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + var emptyCond = PermissionUtil.getEmptyCondString(entityName); sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION" + " where ASYS_PERMISSIONSET_ID = '" + pSetId + "'" + " and COND is not null" - + " and " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " != '" + noCond + "'"; + + " and " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " != '" + emptyCond + "'"; return db.table(sqlStr, alias); } @@ -509,11 +521,11 @@ function PermissionUtil () {} PermissionUtil.getPermission = function(pRole, pEntity, pField, pAccesstype, pCondition, pCondtype) { var sqlStr = ""; var sqlExt = ""; - var noCond = "{\"entity\":\"" + pEntity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; + var emptyCond = PermissionUtil.getEmptyCondString(pEntity); if (checkInput([pCondition])) { - if (pCondition == noCond) { - sqlExt += " and (" + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + noCond + "' or COND is null)"; + if (pCondition == emptyCond) { + sqlExt += " and (" + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + emptyCond + "' or COND is null)"; } else { // SqlMaskingUtils.castLob causes an error in this case (at least on derby-db) // derby-db max size of char is 254 and castLob casts to char first, then to varchar