Something went wrong on our end
-
Simon Leipold authored
Permissions - default permission for role everyone gets created in autostart instead of contentPorcess of PermissionOverview
Simon Leipold authoredPermissions - default permission for role everyone gets created in autostart instead of contentPorcess of PermissionOverview
contentProcess.js 5.08 KiB
import("system.project");
import("system.vars");
import("system.result");
import("system.db");
import("Permission_lib");
var res = [];
var roleTitle = "";
var entityTitle = "";
var sqlCond = "";
var sqlStr = "";
var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
var entitiesUsePermFlagSet = []; // array, which contains ids of entities with usePermission flag set
// gets all names of the entites which have the 'usePermission'-flag set (positive list)
for each (let entityMetaData in entitiesMetaData) {
if (entityMetaData[6] == "true") {
entitiesUsePermFlagSet.push(entityMetaData[0])
}
}
var sqlCondEntityUsePermFlagSet = " and ENTITY_ID in ('" + entitiesUsePermFlagSet.join("','") + "')";
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
roleTitle = vars.getString("$param.RoleTitle_param");
sqlCond = " where ROLE_ID = '" + roleTitle + "'";
sqlStr = "select distinct ENTITY_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
entityTitle = vars.getString("$param.EntityTitle_param");
sqlCond = " where ENTITY_ID = '" + entityTitle + "'";
sqlStr = "select distinct ROLE_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
}
var rolesOrEntities = db.array(db.COLUMN, sqlStr);
var entityPermSetId = "";
for each (var entry in rolesOrEntities) { // entry contains either a role or an entity, depending on which param exists
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
entityPermSetId = PermissionUtil.getRootPermissionSet(roleTitle, entry);
} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
entityPermSetId = PermissionUtil.getRootPermissionSet(entry, entityTitle);
}
var recordPermSetId = PermissionUtil.getChildRecordPermissionSet(entityPermSetId);
var currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
// default entity permissions
currOverview = prepareOverview(entityPermSetId, currOverview, "default");
// conditional record permissions
currOverview = prepareOverview(recordPermSetId, currOverview, "conditional");
// default record permissions
currOverview = prepareOverview(recordPermSetId, currOverview, "default");
res.push(currOverview);
}
result.object(res);
function prepareOverview(pPermSetId, pCurrOverview, pMode) {
var permId, defaultPermActionId, conditionalPermActionId = [], currOverview;
switch (pMode) {
case "default":
permId = PermissionUtil.getDefaultPermission(pPermSetId);
defaultPermActionId = PermissionUtil.getPermissionAction(permId);
currOverview = pCurrOverview;
if (PermissionUtil.getPermissionCondType(permId) == "true") {
for each (let actionSets in defaultPermActionId) {
switch (PermissionUtil.resolvePermissionActionId(actionSets)) {
case "view":
currOverview[2] = "VAADIN:CIRCLE";
break;
case "create":
currOverview[3] = "VAADIN:CIRCLE";
break;
case "read":
currOverview[4] = "VAADIN:CIRCLE";
break;
case "update":
currOverview[5] = "VAADIN:CIRCLE";
break;
case "delete":
currOverview[6] = "VAADIN:CIRCLE";
break;
}
}
}
break;
case "conditional":
permId = PermissionUtil.getConditionalPermission(pPermSetId);
for each (let perm in permId) {
conditionalPermActionId.push(PermissionUtil.getPermissionAction(perm));
}
currOverview = pCurrOverview;
for each (let actionSets in conditionalPermActionId) {
for each (let action in actionSets) {
switch (PermissionUtil.resolvePermissionActionId(action)) {
case "view":
currOverview[2] = "VAADIN:CIRCLE_THIN";
break;
case "create":
currOverview[3] = "VAADIN:CIRCLE_THIN";
break;
case "read":
currOverview[4] = "VAADIN:CIRCLE_THIN";
break;
case "update":
currOverview[5] = "VAADIN:CIRCLE_THIN";
break;
case "delete":
currOverview[6] = "VAADIN:CIRCLE_THIN";
break;
}
}
}
break;
}
return currOverview;
}