Name
global.PlanningConsoleSecurityValidator
Description
No description available
Script
var PlanningConsoleSecurityValidator = Class.create();
/* Given a Project Id, Derives the access Levels */
PlanningConsoleSecurityValidator.prototype = {
initialize: function() {
},
glideRecord: function(entityClassName) {
var gr = new GlideRecord(entityClassName);
gr.initialize();
return gr;
},
planningConsoleEntityPreference: function() {
return gs.getUser().getPreference(PmFieldConstants.PLANNING_CONSOLE_ENTITY_ID);
},
getSysClassName: function() {
var taskGr = new GlideRecord('planned_task');
if( taskGr.get(this.planningConsoleEntityPreference())) {
return taskGr.getValue("sys_class_name");
}
},
canCreate: function(sysClassName) {
PPMDebug.log("Into PlanningConsoleSecurityValidator.canCreate -> " + sysClassName);
sysClassName = sysClassName || this.getSysClassName(this.planningConsoleEntityPreference());
PPMDebug.log("Into PlanningConsoleSecurityValidator.sysClassName -> " + sysClassName);
return this.glideRecord(sysClassName).canCreate();
},
canRead: function() {
var sysClassName = this.getSysClassName(this.planningConsoleEntityPreference());
return this.glideRecord(sysClassName).canCreate();
},
canWrite: function() {
var sysClassName = this.getSysClassName(this.planningConsoleEntityPreference());
return this.glideRecord(sysClassName).canWrite();
},
canDelete: function() {
var sysClassName = this.getSysClassName(this.planningConsoleEntityPreference());
return this.glideRecord(sysClassName).canDelete();
},
access: function( entityClassName, entityId ) {
var access = {
access: this.hasAccess(entityClassName, entityId),
crudAccess: this.hasCRUDAccess(entityClassName, entityId)
};
//gs.info("access: " + access.access + " ; crudAccess: " + access.crudAccess);
},
hasAccess: function(entityClassName, entityId) {
PPMDebug.log("Into PlanningConsoleSecurityValidator.hasAccess -> " + entityClassName + " | " + entityId);
var gr;
for ( var i=0; i<entityId.length; i++ ) {
gr = this.glideRecord(entityClassName);
if ( gr.get(entityId[i]) && gr.canRead() )
continue;
else
return false;
}
return true;
},
hasCRUDAccess: function(entityClassName, entityId) {
var gr;
for ( var i=0; i<entityId.length; i++ ) {
gr = this.glideRecord(entityClassName);
if ( gr.get(entityId[i]) && gr.canRead() && gr.canCreate() && gr.canWrite() && gr.canDelete() )
continue;
else
return false;
}
return true;
},
createBaselineAccess: function() {
return gs.hasRole('project_manager');
},
createOrUpdateTaskAccess: function(entityClassName) {
var projectTaskTable = SNC.PPMConfig.getProjectTaskTable(entityClassName);
//gs.info("createOrUpdateTaskAccess : projectTaskTable --> " + projectTaskTable);
var gr = new GlideRecord(projectTaskTable);
return gr.canCreate() || gr.canWrite();
},
hasWbAccess: function (entityClassName) {
PPMDebug.log("Into PlanningConsoleSecurityValidator.hasWbAccess -> " + entityClassName);
var role = SNC.PPMConfig.getProjectRole('manager', entityClassName);
var hasWbAccess = gs.hasRole(role);
gs.print("Into PlanningConsoleSecurityValidator.hasWbAccess -> " + hasWbAccess + " | " + role);
return hasWbAccess;
},
type: 'PlanningConsoleSecurityValidator'
};
Sys ID
304bb9019f000200598a5bb0657fcf35