Name
sn_risk_advanced.RiskIdentificationAjax
Description
No description available
Script
var RiskIdentificationAjax = Class.create();
RiskIdentificationAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getStatesToHide: function() {
var ri = new GlideRecord("sn_risk_advanced_risk_identification");
ri.get(this.getParameter("sysparm_ri_id"));
var states = [];
if (!ri.risk_identification_configuration.initiate_questionnaire) {
states.push("1");
states.push("2");
} else {
if (!ri.risk_identification_configuration.questionnaire_review)
states.push("2");
}
if (!ri.risk_identification_configuration.inherent_assessment || !ri.entity.applies_to) {
states.push("3");
}
return states.join();
},
getUnassignedRecordsFromLibrary: function(riId, table) {
if (gs.hasRole('sn_risk.manager') || gs.hasRole('sn_compliance.manager')) {
var ri = new GlideRecord('sn_risk_advanced_risk_identification');
ri.get(riId);
var utils = new sn_risk_advanced.RiskIdentificationUtils();
var records = '';
if (table == 'sn_risk_definition') {
records = utils.getUnassignedRisksFromLibrary(ri);
} else if (table == 'sn_compliance_policy') {
records = utils.getUnassignedPoliciesFromLibrary(ri);
} else if (table == 'sn_compliance_citation') {
records = utils.getUnassignedCitationsFromLibrary(ri);
} else if (table == 'sn_compliance_policy_statement') {
records = utils.getUnassignedControlObjectivesFromLibrary(ri);
}
return records;
}
},
filterRecordsByInformationObjects: function(riId, table) {
if (gs.hasRole('sn_risk.manager') || gs.hasRole('sn_compliance.manager')) {
var ri = new GlideRecord('sn_risk_advanced_risk_identification');
ri.get(riId);
var utils = new sn_risk_advanced.RiskIdentificationUtils();
var records = '';
if (table == 'sn_risk_definition') {
records = utils.filterRiskStatementsByInformationObjects(ri);
} else if (table == 'sn_compliance_policy') {
records = utils.filterPoliciesByInformationObjects(ri);
} else if (table == 'sn_compliance_citation') {
records = utils.filterCitationsByInformationObjects(ri);
}
return records;
}
},
associateRecordsToRiskIdentification: function() {
if (gs.hasRole('sn_compliance.manager') && gs.hasRole('sn_risk.manager')) {
var count = 0;
var riId = this.getParameter('sysparm_risk_identification_id');
var table = this.getParameter('sysparm_table');
var column = this.getParameter('sysparm_column');
var recordIds = this.getParameter('sysparm_record_ids').split(',');
for (var i = 0; i < recordIds.length; i++) {
var utils = new sn_risk_advanced.RiskIdentificationUtils();
var result = utils.associateRecordToRiskIdentification(riId, table, column, recordIds[i]);
if (result == "success") {
count = count + 1;
}
}
count = count + '';
var recordType;
var recordType_plural;
if (column == "sn_grc_content") {
recordType = gs.getMessage("citation");
recordType_plural = gs.getMessage("citations");
} else if (column == "sn_grc_document") {
recordType = gs.getMessage("policy");
recordType_plural = gs.getMessage("policies");
}
if (count == 0) {
return gs.getMessage("0 association(s) added.");
} else if (count == 1) {
return gs.getMessage("1 {0} associated successfully.", recordType);
} else {
return gs.getMessage("{0} {1} associated successfully.", [count, recordType_plural]);
}
} else {
return gs.getMessage("Insufficient privileges to perform this action");
}
},
removeAssociation: function() {
if (gs.hasRole('sn_compliance.manager') && gs.hasRole('sn_risk.manager')) {
var table = this.getParameter('sysparm_table');
var riId = this.getParameter('sysparm_risk_identification_id');
var recordIds_list = this.getParameter('sysparm_record_ids').split(',');
var count = 0;
var utils = new sn_risk_advanced.RiskIdentificationUtils();
count = utils.removeAssociationToRiskIdentification(riId, table, recordIds_list);
if (count == 0) {
return gs.getMessage("No associations removed.");
} else if (count == 1) {
return gs.getMessage("1 association removed successfully.");
} else {
return gs.getMessage("{0} associations removed successfully.", count);
}
} else {
return gs.getMessage("Insufficient privileges to perform this action");
}
},
attestControls: function() {
if (gs.hasRole('sn_compliance.manager') && gs.hasRole('sn_risk.manager')) {
var table = this.getParameter('sysparm_table');
var riId = this.getParameter('sysparm_risk_identification_id');
var recordIds_list = this.getParameter('sysparm_record_ids').split(',');
var count = 0;
var utils = new sn_risk_advanced.RiskIdentificationUtils();
count = utils.moveControlsToAttestation(riId, table, recordIds_list);
if (count == 0) {
return gs.getMessage("0 control(s) moved to attest state.");
} else if (count == 1) {
return gs.getMessage("1 control moved to attest state successfully.");
} else {
return gs.getMessage("{0} controls moved to attest state successfully.", count);
}
} else {
return gs.getMessage("Insufficient privileges to perform this action");
}
},
getEntitiesWithoutRI: function(RiConfigId, table) {
if (gs.hasRole('sn_risk.admin')) {
var RiConfigObject = new GlideRecord('sn_risk_advanced_risk_identification_configuration');
RiConfigObject.get(RiConfigId);
var utils = new sn_risk_advanced.RiskIdentificationUtils();
var records = '';
if (table == 'sn_grc_profile') {
records = utils.getEntitiesForRiskIdentificationConfiguration(RiConfigObject);
return records;
}
}
},
createRiRecords: function() {
if (gs.hasRole('sn_risk.admin')) {
var count = 0;
var RiConfigId = this.getParameter('sysparm_risk_identification_config_id');
var RiConfigObject = new GlideRecord('sn_risk_advanced_risk_identification_configuration');
RiConfigObject.get(RiConfigId);
var recordIds_list = this.getParameter('sysparm_record_ids').split(',');
var utils = new sn_risk_advanced.RiskIdentificationUtils();
//Get count of newly created RI
count = utils.createRiForEntity(RiConfigObject, recordIds_list);
if (count == 0) {
return gs.getMessage("0 risk identification record(s) created.");
} else if (count == 1) {
return gs.getMessage("1 new risk identification record created.");
} else {
return gs.getMessage("{0} new risk identification records created.", count);
}
} else {
return gs.getMessage("Insufficient privileges to perform this action");
}
},
getAllControlListFromEntity: function(entity) {
return new sn_risk_advanced.RiskIdentificationUtils().getAllControlListFromEntity(entity);
},
type: 'RiskIdentificationAjax'
});
Sys ID
fb489ad4777510102a272f589a1061f2