@@ -6,8 +6,8 @@ our @ScripConditions;
66our @CustomFields = (
77 { Name => 'CVE ID',
88 Type => 'FreeformMultiple',
9- Queue => [ 'Incidents', 'Incident Reports', 'Investigations', 'Countermeasures' ],
109 Disabled => 0,
10+ LookupType => 'RT::Queue-RT::Ticket',
1111 Description => 'CVE ID for RTIR queues',
1212 LinkValueTo => 'https://nvd.nist.gov/vuln/detail/__CustomField__#vulnCurrentDescriptionTitle',
1313 },
@@ -207,6 +207,28 @@ our @Final = (
207207 }
208208 }
209209 },
210+ sub {
211+ # Apply new CVE ID CF to existing RTIR queues based on lifecycle
212+ my $cve_id_obj = RT::CustomField->new(RT->SystemUser);
213+ my ($ok, $msg) = $cve_id_obj->LoadByName( Name => 'CVE ID' );
214+
215+ if ( $cve_id_obj->IsGlobal ) {
216+ my $empty_queue = RT::Queue->new( RT->SystemUser );
217+ my ($ok, $msg) = $cve_id_obj->RemoveFromObject( $empty_queue );
218+ }
219+
220+ if ( $ok && $cve_id_obj->Id ) {
221+ my $queues = RT::Queues->new(RT->SystemUser);
222+ $queues->Limit( FIELD => 'Lifecycle', VALUE => [ 'incident_reports', 'incidents', 'investigations', 'countermeasures' ], OPERATOR => 'IN' );
223+ while ( my $queue = $queues->Next ) {
224+ my ($ok, $msg) = $cve_id_obj->AddToObject( $queue );
225+ RT->Logger->error("Unable to apply CVE ID to queue " . $queue->Name . " $msg") unless $ok;
226+ }
227+ }
228+ else {
229+ RT->Logger->error("Unable to load custom field CVE ID: $msg");
230+ }
231+ },
210232);
211233
2122341;
0 commit comments