Name
global.PPMConsoleAccessStrategy
Description
No description available
Script
var PPMConsoleAccessStrategy = Class.create();
PPMConsoleAccessStrategy.prototype = {
initialize: function() {
},
instanceOf: function(childTable, parentTable) {
if(JSUtil.notNil(childTable) && JSUtil.notNil(parentTable)) {
var gr = new GlideRecord(childTable);
return gr.instanceOf(parentTable);
}
return false;
},
accessConfig: function(entity, entityId, consoleId, context) {
PPMDebug.log('PPMConsoleAccessStrategy.accessConfig: ' + entity + " | " + entityId + " | " + consoleId);
//derive tables
var console = new PPMConsole(entity, context);
var tables = console.getTables();
var additionalTables = [];
var json = new JSON();
if ( JSUtil.notNil(consoleId) )
return PPMMyGanttAccess.accessConfig();
if ( PPMTableCheck.isProject(entity) )
additionalTables = PPMProjectAccess.additionalTables();
else if ( PPMTableCheck.isRelease(entity) )
additionalTables = PPMReleaseAccess.additionalTables();
else if ( PPMTableCheck.isPlannedTask(entity) )
additionalTables = PPMPlannedTaskAccess.additionalTables();
if(additionalTables && additionalTables.length > 0)
PPMDebug.log('PPMConsoleAccessStrategy.accessConfig: additionalTables - ' + json.encode(additionalTables));
tables = tables.concat(additionalTables);
//find permission for tables
var tablePermissions = new PPMTablePermissionMapper();
var perms = tablePermissions.getPermissions(tables, entityId);
PPMDebug.log('PPMConsoleAccessStrategy.accessConfig: perms - ' + json.encode(perms));
//decorate permission and send to client
if ( PPMTableCheck.isProject(entity) )
return PPMProjectAccess.accessConfig(entity, perms);
else if ( PPMTableCheck.isRelease(entity) )
return PPMReleaseAccess.accessConfig(entity, perms);
else if ( PPMTableCheck.isPlannedTask(entity) )
return PPMPlannedTaskAccess.accessConfig(entity, perms);
else
return perms;
},
type: 'PPMConsoleAccessStrategy'
};
Sys ID
e2947a819f031200598a5bb0657fcf2d