summaryrefslogtreecommitdiff
path: root/rt/etc/upgrade/3.9.2/content
diff options
context:
space:
mode:
Diffstat (limited to 'rt/etc/upgrade/3.9.2/content')
-rw-r--r--rt/etc/upgrade/3.9.2/content48
1 files changed, 48 insertions, 0 deletions
diff --git a/rt/etc/upgrade/3.9.2/content b/rt/etc/upgrade/3.9.2/content
new file mode 100644
index 000000000..d0dbbfd0a
--- /dev/null
+++ b/rt/etc/upgrade/3.9.2/content
@@ -0,0 +1,48 @@
+@Initial = (
+ sub {
+ use strict;
+ $RT::Logger->debug('Removing all delegated rights');
+
+ my $acl = RT::ACL->new(RT->SystemUser);
+ $acl->Limit( CLAUSE => 'search',
+ FIELD => 'DelegatedBy',
+ OPERATOR => '>',
+ VALUE => '0'
+ );
+ $acl->Limit( CLAUSE => 'search',
+ FIELD => 'DelegatedFrom',
+ OPERATOR => '>',
+ VALUE => '0',
+ ENTRYAGGREGATOR => 'OR',
+ );
+
+ while ( my $ace = $acl->Next ) {
+ my ( $ok, $msg ) = $ace->Delete();
+
+ if ( !$ok ) {
+ $RT::Logger->warn(
+ "Unable to delete ACE " . $ace->id . ": " . $msg );
+ }
+ }
+
+ my $groups = RT::Groups->new(RT->SystemUser);
+ $groups->Limit( FIELD => 'Domain',
+ OPERATOR => '=',
+ VALUE => 'Personal'
+ );
+ 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();
+ }
+ },
+);
+