Name

global.PrivacyValidator

Description

No description available

Script

var PrivacyValidator = Class.create();
PrivacyValidator.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  /**
   * Validate technique parameter values for a parameterized technique
   */
  validateParameterValues: function() {
  	var techniqueParams = this.getParameter('sysparm_techniqueParams');
  	var value = this.getParameter('sysparm_value');
  	return this.validateParameterValuesUtil(techniqueParams, value);
  },

  validateParameterValuesUtil: function(techniqueParams, value) {
  	var validatorApi = new SNC.DataProtectionValidator();
  	var result = validatorApi.validateParameterValues(techniqueParams, value);
  	return result;
  },

  /**
   * Validate a policy
   */
  validatePolicy: function() {
  	var policyId = this.getParameter('sysparm_policyId');
  	var validatorApi = new SNC.DataProtectionValidator();
  	return this.validatePolicyUtil(policyId, validatorApi);
  },

  validatePolicyUtil: function(policyId, validatorApi) {
  	var result = validatorApi.validatePolicy(policyId);
  	result = JSON.stringify(result);
  	return result;
  },

 /**
   * Validate a job
   */
  validateJob: function() {
  	var jobId = this.getParameter('sysparm_jobId');
  	return this.validateJobUtil(jobId);
  },

  validateJobUtil: function(jobId) {
  	var validatorApi = new SNC.DataProtectionValidator();
  	var result = validatorApi.validateJob(jobId);
  	return result;
  },

  isValidJob: function(jobId) {
  	var validatorApi = new SNC.DataProtectionValidator();
  	var result = validatorApi.validateJob(jobId);
  	return result === '';
  },
  
  /**
   * Test if job can be scheduled or restarted
   */
  jobCanRun: function(action, jobId) {
  	var jobRecord = new GlideRecord('dp_job');
  	jobRecord.addQuery('sys_id', jobId);
  	jobRecord.query();
  	jobRecord.next();
  	var state = jobRecord.getValue('state');
  	if (action === 'schedule') {
  		if (state !== 'new' || !jobRecord.canWrite())
  			return false;
  	} else if (action === 'restart') {
  		    return false;
  	}
  	return this.isValidJob(jobId);
  },
  
  type: 'PrivacyValidator'
});

Sys ID

520f633aebb230101c396f16c552285b

Offical Documentation

Official Docs: