Name

global.FindRelevantAcls

Description

For the given ACL, returns all the related ACLs that belong in the same ACL hierarchy.

Script

var FindRelevantAcls = Class.create();

FindRelevantAcls.prototype = Object.extendsObject(AbstractAjaxProcessor, {

  process : function() {
  	var identifier = this.getParameter("sysparm_identifier");
  	var operationID = this.getParameter("sysparm_operationID");
  	var resourceID = this.getParameter("sysparm_resourceID");

  	var originalIdentifier = this.getParameter("sysparm_original_identifier");
  	var originalOperationID = this.getParameter("sysparm_original_operationID");
  	var originalResourceID = this.getParameter("sysparm_original_resourceID");		
  	var aclSysID = this.getParameter("sysparm_sysID");
  	var enableArchiveACLs = GlideProperties.getBoolean("glide.security.enable_archive_table_acls", false);

  	var allPlans = {};
  	allPlans.enableArchiveACLs = enableArchiveACLs;
  	var plan = GlideContextualSecurityManager.getRelatedACLs(identifier, operationID, resourceID);

  	//cannot put the returned object directly as it is in JSON format and here we have javascript array
  	var json = new JSON();
  	var originalPlan;

  	if (GlideStringUtil.notNil(originalIdentifier) && GlideStringUtil.notNil(originalOperationID) && GlideStringUtil.notNil(originalResourceID)) {
  		if(GlideStringUtil.notNil(aclSysID)){
  			originalPlan = GlideContextualSecurityManager.getRelatedACLs(aclSysID);
  		}
  		else{
  			originalPlan = GlideContextualSecurityManager.getRelatedACLs(originalIdentifier, originalOperationID, originalResourceID);
  		}
  		allPlans['original'] = json.decode(originalPlan);
  	}

  	allPlans['current'] = json.decode(plan);

  	// For archive tables include current and original plans for the underlying archived table
  	if (GlideArchiveTable.isArchive(identifier) && enableArchiveACLs) {
  		allPlans['currentArchived'] = json.decode(
  			GlideContextualSecurityManager.getRelatedACLs(GlideArchiveTable.getArchivedTableName(identifier), operationID, resourceID));
  	}
  	if (originalIdentifier && GlideArchiveTable.isArchive(originalIdentifier) && enableArchiveACLs) {
  		allPlans['originalArchived'] = json.decode(
  			GlideContextualSecurityManager.getRelatedACLs(GlideArchiveTable.getArchivedTableName(originalIdentifier), operationID, resourceID));
  	}

  	return json.encode(allPlans);
  },

  type: 'FindRelevantAcls'
});

Sys ID

6fc3e25393023100f0d979b4f47ffb43

Offical Documentation

Official Docs: