6 RT->Logger->debug('Removing all delegated rights');
8 my $acl = RT::ACL->new(RT->SystemUser);
9 my $groupjoin = $acl->Join(
11 FIELD1 => 'PrincipalId',
15 $acl->Limit( ALIAS => $groupjoin,
22 while ( my $ace = $acl->Next ) {
23 my ( $ok, $msg ) = $ace->Delete();
26 RT->Logger->warn( "Unable to delete ACE " . $ace->id . ": " . $msg );
30 my $groups = RT::Groups->new(RT->SystemUser);
31 $groups->Limit( FIELD => 'Domain',
36 while ( my $group = $groups->Next ) {
37 my $members = $group->MembersObj();
38 while ( my $member = $members->Next ) {
39 my ( $ok, $msg ) = $group->DeleteMember( $member->MemberId );
41 RT->Logger->warn( "Unable to remove group member "
46 $group->PrincipalObj->Delete;
47 $group->RT::Record::Delete();
51 RT->Logger->debug('Removing all Delegate and PersonalGroup rights');
53 # this temporarily tells the system that the rights exist so it can properly canonicalize them
54 RT::System->AddRight(Admin => AdminOwnPersonalGroups => 'Add right for 4.0.1 upgrade steps');
55 RT::System->AddRight(Admin => AdminAllPersonalGroups => 'Add right for 4.0.1 upgrade steps');
56 RT::System->AddRight(Admin => DelegateRights => 'Add right for 4.0.1 upgrade steps');
58 my $acl = RT::ACL->new(RT->SystemUser);
59 for my $right (qw/AdminOwnPersonalGroups AdminAllPersonalGroups DelegateRights/) {
60 $acl->Limit( FIELD => 'RightName', VALUE => $right );
63 while ( my $ace = $acl->Next ) {
64 my ( $ok, $msg ) = $ace->Delete();
65 RT->Logger->debug("Removing ACE ".$ace->id." for right ".$ace->__Value('RightName'));
68 RT->Logger->warn( "Unable to delete ACE " . $ace->id . ": " . $msg );
73 RT->Logger->debug('Removing unimplemented RejectTicket and ModifyTicketStatus rights');
75 my $acl = RT::ACL->new(RT->SystemUser);
76 for my $right (qw/RejectTicket ModifyTicketStatus/) {
77 $acl->Limit( FIELD => 'RightName', VALUE => $right );
80 while ( my $ace = $acl->Next ) {
81 my ( $ok, $msg ) = $ace->Delete();
82 RT->Logger->debug("Removing ACE ".$ace->id." for right ".$ace->__Value('RightName'));
85 RT->Logger->warn( "Unable to delete ACE " . $ace->id . ": " . $msg );