Name

global.ITSMBSCommentsWriteHelperSNC

Description

SNC class containing logic for activation and deactivation of ACL for ITSM business stakeholder role.

Script

var ITSMBSCommentsWriteHelperSNC = Class.create();

ITSMBSCommentsWriteHelperSNC.prototype = {
  initialize: function() {

  },

  bsCommentsWriteACLActive: function() {
  	var bsCommWriteACLIdsExcludeMim = [
  		'1d0910cdc3023010a282a539e540dd13',
  		'64263c16c3e13010a282a539e540dd86',
  		'91b7ec2cc3313010a282a539e540dd37',
  		'92b7f096c3e13010a282a539e540dd4e',
  		'c1b5fcd2c3e13010a282a539e540ddc6',
  		'080a301ac3e13010a282a539e540dd1d',
  		'1221ba62c3223010a282a539e540dd7e',
  		'38f2bea2c3223010a282a539e540ddb4',
  		'8479bc96c3e13010a282a539e540ddb0',
  		'0c44f492c3e13010a282a539e540ddf1',
  		'a1150faec3223010a282a539e540dd90',
  		'b9193267c3333010a282a539e540dd19',
  		'c941467fc3333010a282a539e540dded',
  		'23a1c2bfc3333010a282a539e540dd7b',
  		'7a693667c3333010a282a539e540dd2c',
  		'19d83e27c3333010a282a539e540ddae',
  		'925ff5fbc3333010a282a539e540dd6c'
  	];

  	var aclCheckGR = new GlideRecord('sys_security_acl');
  	aclCheckGR.addQuery('sys_id', 'IN', bsCommWriteACLIdsExcludeMim);
  	aclCheckGR.addQuery('active', true);
  	aclCheckGR.query();
  	return aclCheckGR.hasNext();
  },

  updateAllBSCommentsWriteACLs: function() {
  	var bsCommentsWriteACLIds = [
  		'1d0910cdc3023010a282a539e540dd13',
  		'64263c16c3e13010a282a539e540dd86',
  		'91b7ec2cc3313010a282a539e540dd37',
  		'92b7f096c3e13010a282a539e540dd4e',
  		'c1b5fcd2c3e13010a282a539e540ddc6',
  		'080a301ac3e13010a282a539e540dd1d',
  		'1221ba62c3223010a282a539e540dd7e',
  		'38f2bea2c3223010a282a539e540ddb4',
  		'8479bc96c3e13010a282a539e540ddb0',
  		'0c44f492c3e13010a282a539e540ddf1',
  		'a1150faec3223010a282a539e540dd90',
  		'b9193267c3333010a282a539e540dd19',
  		'c941467fc3333010a282a539e540dded',
  		'23a1c2bfc3333010a282a539e540dd7b',
  		'7a693667c3333010a282a539e540dd2c',
  		'19d83e27c3333010a282a539e540ddae',
  		'925ff5fbc3333010a282a539e540dd6c',
  		'c2fe76e5c3100110a282a539e540dd64',
  		'4cdeb2e5c3100110a282a539e540dd2e'
  	];

  	var aclGR = new GlideRecord('sys_security_acl');
  	aclGR.addQuery('sys_id', 'IN', bsCommentsWriteACLIds);
  	aclGR.setValue('active', true);
  	aclGR.updateMultiple();

  	var toBeDeactivatedACLIds = [
  		'f6af81544657629200f6a10b43112aa6',
  		'fb2ac596c0a8ce0100c1eabe1095f34f',
  		'0527cdceb7522010eeafbc16de11a970',
  		'06b6e48ab7122010eeafbc16de11a97b'
  	];

  	var aclToDeactivateGR = new GlideRecord('sys_security_acl');
  	aclToDeactivateGR.addQuery('sys_id', 'IN', toBeDeactivatedACLIds);
  	aclToDeactivateGR.setValue('active', false);
  	aclToDeactivateGR.updateMultiple();
  },

  updateMimBSCommentsWriteACLs: function() {
  	var mimActivateACLIds = [
  		'c2fe76e5c3100110a282a539e540dd64',
  		'4cdeb2e5c3100110a282a539e540dd2e'
  	];

  	var mimAclActivateGR = new GlideRecord('sys_security_acl');
  	mimAclActivateGR.addQuery('sys_id', 'IN', mimActivateACLIds);
  	mimAclActivateGR.setValue('active', true);
  	mimAclActivateGR.updateMultiple();

  	var mimACLDeactivateIds = [
  		'06b6e48ab7122010eeafbc16de11a97b'
  	];

  	var mimAclToDeactivateGR = new GlideRecord('sys_security_acl');
  	mimAclToDeactivateGR.addQuery('sys_id', 'IN', mimACLDeactivateIds);
  	mimAclToDeactivateGR.setValue('active', false);
  	mimAclToDeactivateGR.updateMultiple();
  },

  insertMimACLModifyTrigger: function() {
  	if (!this.bsCommentsWriteACLActive())
  		return;

  	var tGR = new GlideRecord('sys_trigger');
  	tGR.name = 'ITSM Business Comments Write ACL for mim';
  	var gdt = new GlideDateTime();
  	gdt.addSeconds(5 * 60);
  	tGR.next_action = gdt;
  	tGR.script = "new ITSMBSCommentsWriteHelper().updateMimBSCommentsWriteACLs();";
  	tGR.job_id.setDisplayValue('RunScriptJob');
  	tGR.trigger_type = 0;
  	tGR.insert();
  },

  type: 'ITSMBSCommentsWriteHelperSNC'
};

Sys ID

da1732a7c3d00110a282a539e540ddf2

Offical Documentation

Official Docs: