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

1036804 Berechtigung - Entitätsübersicht

parent 19bf9767
No related branches found
No related tags found
No related merge requests found
Showing
with 632 additions and 0 deletions
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
import("system.vars");
import("system.logging");
import("system.result");
import("system.project");
var entities = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
var selectedEntity = vars.get("$local.idvalues");
var res = [];
if (selectedEntity == null) {
for each (let entity in entities) {
res.push([entity[0], entity[1], entity[2]]);
}
} else {
for each (let entity in entities) {
if (entity[0] == selectedEntity) {
res.push([entity[0], entity[1], entity[2]]);
break;
}
}
}
result.object(res.sort());
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.1">
<name>PermissionOverview_entity</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<iconIdProcess>%aditoprj%/entity/PermissionOverview_entity/iconIdProcess.js</iconIdProcess>
<recordContainer>jDito</recordContainer>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>ENTITY</name>
<titleProcess>%aditoprj%/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js</titleProcess>
</entityField>
<entityField>
<name>ACTION_VIEW</name>
<title>View</title>
<contentType>IMAGE</contentType>
</entityField>
<entityField>
<name>ACTION_CREATE</name>
<title>Create</title>
<contentType>IMAGE</contentType>
</entityField>
<entityField>
<name>ACTION_READ</name>
<title>Read</title>
<contentType>IMAGE</contentType>
</entityField>
<entityField>
<name>ACTION_EDIT</name>
<title>Edit</title>
<contentType>IMAGE</contentType>
</entityField>
<entityField>
<name>ACTION_DELETE</name>
<title>Delete</title>
<contentType>IMAGE</contentType>
</entityField>
<entityField>
<name>CONDTYPE</name>
</entityField>
<entityField>
<name>UID</name>
<title>Permission Set ID</title>
</entityField>
<entityProvider>
<name>PermissionOverviews</name>
<fieldType>DEPENDENCY_IN</fieldType>
<recordContainer>jDito</recordContainer>
<dependencies>
<entityDependency>
<name>b9f4df41-74e9-41d2-bfe6-1427ae7c8c36</name>
<entityName>Role_entity</entityName>
<fieldName>PermissionOverviews</fieldName>
<isConsumer v="false" />
</entityDependency>
<entityDependency>
<name>ac8eb318-8d26-43a0-9463-e1c3741c7710</name>
<entityName>PermissionMetaData_entity</entityName>
<fieldName>PermissionOverviews</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
<entityParameter>
<name>RoleTitle_param</name>
<expose v="true" />
<description>PARAMETER</description>
</entityParameter>
<entityParameter>
<name>EntityTitle_param</name>
<expose v="true" />
<description>PARAMETER</description>
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
<name>jDito</name>
<jDitoRecordAlias>Data_alias</jDitoRecordAlias>
<contentProcess>%aditoprj%/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<recordFields>
<element>UID.value</element>
<element>ENTITY.value</element>
<element>ACTION_VIEW.value</element>
<element>ACTION_CREATE.value</element>
<element>ACTION_READ.value</element>
<element>ACTION_EDIT.value</element>
<element>ACTION_DELETE.value</element>
</recordFields>
</jDitoRecordContainer>
</recordContainers>
</entity>
import("system.result");
import("system.vars");
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
result.string("Entity");
} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
result.string("Role");
}
\ No newline at end of file
import("system.vars");
import("system.result");
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
result.string("VAADIN:CONNECT");
} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
result.string("VAADIN:USER_CHECK");
}
\ No newline at end of file
import("system.vars");
import("system.result");
import("system.db");
import("Permission_lib");
var res = [];
var roleTitle = "";
var entityTitle = "";
var sqlCond = "";
var sqlStr = "";
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 AB_PERMISSIONSET" + sqlCond;
} 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 AB_PERMISSIONSET" + sqlCond;
}
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 "edit":
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 "edit":
currOverview[5] = "VAADIN:CIRCLE_THIN";
break;
case "delete":
currOverview[6] = "VAADIN:CIRCLE_THIN";
break;
}
}
}
break;
}
return currOverview;
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.1">
<name>PermissionSet_entity</name>
<title>Permission Set</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<iconId>VAADIN:SHIELD</iconId>
<titleProcess>%aditoprj%/entity/PermissionSet_entity/titleProcess.js</titleProcess>
<recordContainer>db</recordContainer>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>AB_PERMISSIONSETID</name>
<title>Permission Set</title>
<valueProcess>%aditoprj%/entity/PermissionSet_entity/entityfields/ab_permissionsetid/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>AB_PERMISSIONSET_ID</name>
<title>Parent Permission</title>
</entityField>
<entityField>
<name>ENTITY_ID</name>
<title>Entity</title>
</entityField>
<entityField>
<name>ROLE_ID</name>
<title>Role</title>
</entityField>
<entityField>
<name>FIELD_ID</name>
<title>Field</title>
</entityField>
<entityField>
<name>ACCESSTYPE</name>
<title>Access Type</title>
</entityField>
<entityProvider>
<name>PermissionSets</name>
<fieldType>DEPENDENCY_IN</fieldType>
<dependencies>
<entityDependency>
<name>fb648b04-2815-42b6-a63a-188d26f39955</name>
<entityName>PermissionAdmin_entity</entityName>
<fieldName>PermissionSets</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
<entityConsumer>
<name>Permissions</name>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>Permission_entity</entityName>
<fieldName>Permissions</fieldName>
</dependency>
<children>
<entityParameter>
<name>PermissionSetId_param</name>
<valueProcess>%aditoprj%/entity/PermissionSet_entity/entityfields/permissions/children/permissionsetid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields>
<recordContainers>
<dbRecordContainer>
<name>db</name>
<alias>Data_alias</alias>
<linkInformation>
<linkInformation>
<name>a9991ed6-0f6a-4da3-b54c-0b1a3c9cf885</name>
<tableName>AB_PERMISSIONSET</tableName>
<primaryKey>AB_PERMISSIONSETID</primaryKey>
<isUIDTable v="false" />
<readonly v="false" />
</linkInformation>
</linkInformation>
<recordFieldMappings>
<dbRecordFieldMapping>
<name>AB_PERMISSIONSET_ID.value</name>
<recordfield>AB_PERMISSIONSET.AB_PERMISSIONSET_ID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>AB_PERMISSIONSETID.value</name>
<recordfield>AB_PERMISSIONSET.AB_PERMISSIONSETID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>ACCESSTYPE.value</name>
<recordfield>AB_PERMISSIONSET.ACCESSTYPE</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>ENTITY_ID.value</name>
<recordfield>AB_PERMISSIONSET.ENTITY_ID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>FIELD_ID.value</name>
<recordfield>AB_PERMISSIONSET.FIELD_ID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>ROLE_ID.value</name>
<recordfield>AB_PERMISSIONSET.ROLE_ID</recordfield>
</dbRecordFieldMapping>
</recordFieldMappings>
</dbRecordContainer>
</recordContainers>
</entity>
import("system.neon");
import("system.result");
import("system.util");
import("system.vars");
if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
result.string(util.getNewUUID());
import("system.result");
import("system.vars");
result.string(vars.get("$field.AB_PERMISSIONSETID"));
\ No newline at end of file
import("system.vars");
import("system.result");
var res = "";
switch (vars.get("$field.ACCESSTYPE")) {
case "E":
res += vars.get("$field.ENTITY_ID");
break;
case "R":
res += "Record";
break;
case "F":
res += vars.get("$field.FIELD_ID");
break;
}
result.string(res);
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.1">
<name>Permission_entity</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<iconId>VAADIN:SHIELD</iconId>
<recordContainer>db</recordContainer>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>AB_PERMISSIONID</name>
<title>Permission</title>
<valueProcess>%aditoprj%/entity/Permission_entity/entityfields/ab_permissionid/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>AB_PERMISSIONSET_ID</name>
<title>Parent Permission</title>
</entityField>
<entityField>
<name>COND</name>
<title>Condition</title>
</entityField>
<entityField>
<name>CONDTYPE</name>
<title>Condition Type</title>
</entityField>
<entityConsumer>
<name>PermissionPermissionActions</name>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>PermissionAction_entity</entityName>
<fieldName>PermissionActions</fieldName>
</dependency>
<children>
<entityParameter>
<name>PermissionId_param</name>
<valueProcess>%aditoprj%/entity/Permission_entity/entityfields/permissionpermissionactions/children/permissionid_param/valueProcess.js</valueProcess>
<expose v="false" />
<mandatory v="false" />
</entityParameter>
</children>
</entityConsumer>
<entityProvider>
<name>Permissions</name>
<fieldType>DEPENDENCY_IN</fieldType>
<recordContainer>db</recordContainer>
<dependencies>
<entityDependency>
<name>f902d1b2-15c4-4fbc-93c4-17f76625e746</name>
<entityName>PermissionSet_entity</entityName>
<fieldName>Permissions</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
<entityParameter>
<name>PermissionSetId_param</name>
<expose v="true" />
<triggerRecalculation v="true" />
<mandatory v="true" />
<description>PARAMETER</description>
</entityParameter>
</entityFields>
<recordContainers>
<dbRecordContainer>
<name>db</name>
<alias>Data_alias</alias>
<conditionProcess>%aditoprj%/entity/Permission_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
<linkInformation>
<linkInformation>
<name>2061cedc-6d6f-4515-9ef8-8af77aba483e</name>
<tableName>AB_PERMISSION</tableName>
<primaryKey>AB_PERMISSIONID</primaryKey>
<isUIDTable v="false" />
<readonly v="false" />
</linkInformation>
</linkInformation>
<recordFieldMappings>
<dbRecordFieldMapping>
<name>COND.value</name>
<recordfield>AB_PERMISSION.COND</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>CONDTYPE.value</name>
<recordfield>AB_PERMISSION.CONDTYPE</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>AB_PERMISSIONID.value</name>
<recordfield>AB_PERMISSION.AB_PERMISSIONID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>AB_PERMISSIONSET_ID.value</name>
<recordfield>AB_PERMISSION.AB_PERMISSIONSET_ID</recordfield>
</dbRecordFieldMapping>
</recordFieldMappings>
</dbRecordContainer>
</recordContainers>
</entity>
import("system.neon");
import("system.result");
import("system.util");
import("system.vars");
if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
result.string(util.getNewUUID());
\ No newline at end of file
import("system.result");
import("system.vars");
result.string(vars.get("$field.AB_PERMISSIONID"));
\ No newline at end of file
import("system.logging");
import("system.vars");
import("system.db");
import("system.result");
if (vars.exists("$param.PermissionSetId_param") && vars.get("$param.PermissionSetId_param"))
result.string(db.translateCondition("AB_PERMISSIONSET_ID = '" + vars.get("$param.PermissionSetId_param") + "'"));
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.1">
<name>Role_entity</name>
<title>Roles</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<icon>VAADIN:USER_CHECK</icon>
<iconId>VAADIN:USER_CHECK</iconId>
<titleProcess>%aditoprj%/entity/Role_entity/titleProcess.js</titleProcess>
<recordContainer>jDito</recordContainer>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>ROLETITLE</name>
<title>Title</title>
</entityField>
<entityField>
<name>ROLETYPE</name>
<title>Type</title>
</entityField>
<entityField>
<name>ROLEDESCRIPTION</name>
<title>Description</title>
</entityField>
<entityField>
<name>UID</name>
</entityField>
<entityField>
<name>USERCOUNT</name>
</entityField>
<entityConsumer>
<name>Permissions</name>
<title>Permission Detail</title>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>PermissionDetail_entity</entityName>
<fieldName>Permissions</fieldName>
</dependency>
<children>
<entityParameter>
<name>RoleTitle_param</name>
<valueProcess>%aditoprj%/entity/Role_entity/entityfields/permissions/children/roletitle_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>PermissionOverviews</name>
<title>Permission Overview</title>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>PermissionOverview_entity</entityName>
<fieldName>PermissionOverviews</fieldName>
</dependency>
<children>
<entityParameter>
<name>RoleTitle_param</name>
<valueProcess>%aditoprj%/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityProvider>
<name>Roles</name>
<fieldType>DEPENDENCY_IN</fieldType>
<recordContainer>jDito</recordContainer>
<dependencies>
<entityDependency>
<name>64d800d0-4db5-4b95-ab6a-9197b83cc09c</name>
<entityName>PermissionDetail_entity</entityName>
<fieldName>Roles</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
<name>jDito</name>
<jDitoRecordAlias>Data_alias</jDitoRecordAlias>
<contentProcess>%aditoprj%/entity/Role_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<recordFields>
<element>UID.value</element>
<element>ROLETITLE.value</element>
<element>ROLETYPE.value</element>
<element>ROLEDESCRIPTION.value</element>
<element>USERCOUNT.value</element>
</recordFields>
</jDitoRecordContainer>
</recordContainers>
</entity>
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
import("system.translate");
import("system.logging");
import("system.vars");
import("system.result");
import("system.tools");
var lang = vars.get("$sys.clientlanguage");//e.g. "de"
var country = vars.get("$sys.clientcountry");//e.g. "DE"
locale = country ? lang + "_" + country : lang;
var selectedRole = vars.get("$local.idvalues");
var roles = tools.getAllRoles();
var res = [];
if (selectedRole == null) {
for each (let role in roles) {
res.push([role[1] + "_" + role[0], role[0], role[1], role[2], 0]);
}
} else {
for each (let role in roles) {
if (role[1] + "_" + role[0] == selectedRole) {
let numberOfUsersInSelectedRole = tools.getUsersWithRole(selectedRole).length;
res.push([role[1] + "_" + role[0], role[0], role[1], role[2], numberOfUsersInSelectedRole + translate.text(" User", locale)]);
break;
}
}
}
result.object(res.sort());
\ No newline at end of file
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