diff options
Diffstat (limited to 'rt/etc/upgrade/4.0.9/content')
| -rw-r--r-- | rt/etc/upgrade/4.0.9/content | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/rt/etc/upgrade/4.0.9/content b/rt/etc/upgrade/4.0.9/content new file mode 100644 index 000000000..f2abf623b --- /dev/null +++ b/rt/etc/upgrade/4.0.9/content @@ -0,0 +1,52 @@ +@Initial = ( + sub { + $RT::Logger->debug( + 'Going to update empty Queue Lifecycle column to "default"'); + + my $queues = RT::Queues->new( RT->SystemUser ); + $queues->FindAllRows; + $queues->Limit( + FIELD => 'Lifecycle', + OPERATOR => 'IS', + VALUE => 'NULL', + ); + + $queues->Limit( + FIELD => 'Lifecycle', + VALUE => '', + ENTRYAGGREGATOR => 'OR', + ); + + $queues->Limit( + FIELD => 'Lifecycle', + VALUE => 0, + ENTRYAGGREGATOR => 'OR', + ); + + while ( my $q = $queues->Next ) { + $q->SetLifecycle('default'); + } + }, + sub { + use strict; + my $groups = RT::Groups->new(RT->SystemUser); + $groups->Limit( FIELD => 'Domain', + OPERATOR => '=', + VALUE => 'Personal' + ); + $groups->LimitToDeleted; + while ( my $group = $groups->Next ) { + my $members = $group->MembersObj(); + while ( my $member = $members->Next ) { + my ( $ok, $msg ) = $group->DeleteMember( $member->MemberId ); + if ( !$ok ) { + $RT::Logger->warn( "Unable to remove group member " + . $member->id . ": " + . $msg ); + } + } + $group->PrincipalObj->Delete; + $group->RT::Record::Delete(); + } + }, +); |
