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

Merge branch 'Permissions' into 'stable2019.3'

Permissions

See merge request xrm/basic!74
parents 6218ee2a 4ad5e5c0
No related branches found
No related tags found
No related merge requests found
......@@ -202,6 +202,7 @@
<jDitoRecordContainer>
<name>jDito</name>
<jDitoRecordAlias>Data_alias</jDitoRecordAlias>
<isSortable v="true" />
<contentProcess>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<onInsert>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js</onInsert>
<onUpdate>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
......
......@@ -19,12 +19,7 @@ var entitiesUsePermFlagSet = []; // array, which contains ids of entities with u
// 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])
if (PermissionUtil.getNumberOfPermissions(entityMetaData[0]) == 0) {
// no permissions found for the given entity -> create permissionset for role INTERNAL_EVERYONE with five X's for view, create, read, edit, delete
var noAccessPermissionSetIdEntity = PermissionUtil.insertSet("", entityMetaData[0], roleInternalEveryone, "", "E");
PermissionUtil.insertPermission(noAccessPermissionSetIdEntity, "", 0); // 0 is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E"
}
entitiesUsePermFlagSet.push(entityMetaData[0]);
}
}
......@@ -32,10 +27,23 @@ var sqlCondEntityUsePermFlagSet = " and ENTITY_ID in ('" + entitiesUsePermFlagSe
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
roleTitle = vars.getString("$param.RoleTitle_param");
if (roleTitle == roleInternalEveryone) {
var counter = 0;
for each (let entityUsePermFlagSet in entitiesUsePermFlagSet) {
if (PermissionUtil.getNumberOfPermissions(entityUsePermFlagSet, roleTitle) == 0) {
// no permissions for INTERNAL_EVERYONE found -> display X's for all actions
res.push(["NOREALPERMINDB" + counter++, entityUsePermFlagSet, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
}
}
}
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");
if (PermissionUtil.getNumberOfPermissions(entityTitle, roleInternalEveryone) == 0) {
// no permissions for INTERNAL_EVERYONE found -> display X's for all actions
res.push(["NOREALPERMINDB", roleInternalEveryone, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
}
sqlCond = " where ENTITY_ID = '" + entityTitle + "'";
sqlStr = "select distinct ROLE_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
}
......
......@@ -31,6 +31,7 @@
</entityField>
<entityField>
<name>USERCOUNT</name>
<title>Amount</title>
</entityField>
<entityConsumer>
<name>Permissions</name>
......
......@@ -11,8 +11,9 @@
<cardViewTemplate>
<name>Card</name>
<iconField>#ICON</iconField>
<titleField>ROLETITLE</titleField>
<subtitleField>USERCOUNT</subtitleField>
<titleField>UID</titleField>
<subtitleField>ROLETITLE</subtitleField>
<descriptionField>USERCOUNT</descriptionField>
<entityField>#ENTITY</entityField>
</cardViewTemplate>
<genericViewTemplate>
......
......@@ -15,21 +15,4 @@ for(var i = 0; i < usersTools.length; i++)
}
calendars.setCalendarUser(users, calendars.RIGHT_READ | calendars.RIGHT_WRITE, false, calendars.SORTSTRATEGY_NATURAL);
calendars.setCheckAttendeesOnWrite(false);
// permissions - creating default permission (with no actions) for role everyone
var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
var entitiesUsePermFlagSet = []; // array, which contains ids of entities with usePermission flag set
var roleInternalEveryone = "INTERNAL_EVERYONE";
// 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])
if (PermissionUtil.getNumberOfPermissions(entityMetaData[0]) == 0) {
// no permissions found for the given entity -> create permissionset for role INTERNAL_EVERYONE with five X's for view, create, read, update, delete
var noAccessPermissionSetIdEntity = PermissionUtil.insertSet("", entityMetaData[0], roleInternalEveryone, "", "E");
PermissionUtil.insertPermission(noAccessPermissionSetIdEntity, "", 0); // 0 is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E"
}
}
}
calendars.setCheckAttendeesOnWrite(false);
\ 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