[Rt-commit] rt branch, 4.4/remove-user-info, repushed

Craig Kaiser craig at bestpractical.com
Wed May 23 09:14:35 EDT 2018


The branch 4.4/remove-user-info was deleted and repushed:
       was 866989b180e0aeb1caa3ed9ee7424f23459c1be4
       now 432578d90c0d5003b4a93603f0fbc86db4bfe372

1: 80b47786c ! 1: 64af40e8e Create portlet for removing user information
    @@ -55,9 +55,17 @@
     +%#
     +%# END BPS TAGGED BLOCK }}}
     +<div class="modal" id="user-info-modal">
    ++% if ( $count > 500 ) {
    ++    <p>
    ++    You will need to update <% $count %> attachment records to remove <% $user->EmailAddress ? $user->EmailAddress : $user->Name %>.
    ++    please use the command line tool to avoid crashing the server.
    ++    </p>
    ++     <a href="#" rel="modal:close"><button>Ok</button></a>
    ++% } else {
     +    <p>Are you sure you want to update <% $count %> attachment records to remove <% $user->EmailAddress ? $user->EmailAddress : $user->Name %></p>
    -+    <a href="?id=<% $id %>&UserId=<% $id %>&Anonymize=1"><button>Ok</button></a>
    ++    <a href="?id=<% $id %>&Anonymize=1"><button>Ok</button></a>
     +    <a href="#" rel="modal:close"><button>Cancel</button></a>
    ++% }
     +</div>
     +<&|/Widgets/TitleBox,
     +    class => 'user-related-info',
    @@ -67,8 +75,8 @@
     +<div class="row">
     +    <div class="col-md-12">
     +        <a href="#user-info-modal" rel="modal:open"><button>Anonymize User</button></a>
    -+        <a href="/Admin/Tools/Shredder/index.html?Plugin=Users&Objects%3Alimit=&Objects%3AACE=&Objects%3AAttachment=&Objects%3ACachedGroupMember=&Objects%3ACustomField=&Objects%3ACustomFieldValue=&Objects%3AGroupMember=&Objects%3AGroup=&Objects%3ALink=&Objects%3APrincipal=&Objects%3AQueue=&Objects%3AScrip=&Objects%3AScripAction=&Objects%3AScripCondition=&Objects%3ATemplate=&Objects%3AObjectCustomFieldValue=&Objects%3ATicket=&Objects%3ATransaction=&Objects%3AUser=&Attachments%3Alimit=&Attachments%3Afiles_only=&Attachments%3Afile=&Attachments%3Alonger=&Users%3Alimit=&Users%3Astatus=Enabled&Users%3Aname=<% $user->Name %>&Users%3Aemail=&Users%3Amember_of=&Users%3Anot_member_of=&Users%3Areplace_relations=<% $user->Name %>&Users%3Ano_tickets=&Users%3Ano_ticket_transactions=&Tickets%3Alimit=&Tickets%3Aquery=&Tickets%3Awith_linked=&Tickets%3Aapply_query_to_linked=&Search=Search"><button>Replace User Information</button></a>
    -+        <a href="/Admin/Tools/Shredder/index.html?Plugin=Users&Objects%3Alimit=&Objects%3AACE=&Objects%3AAttachment=&Objects%3ACachedGroupMember=&Objects%3ACustomField=&Objects%3ACustomFieldValue=&Objects%3AGroupMember=&Objects%3AGroup=&Objects%3ALink=&Objects%3APrincipal=&Objects%3AQueue=&Objects%3AScrip=&Objects%3AScripAction=&Objects%3AScripCondition=&Objects%3ATemplate=&Objects%3AObjectCustomFieldValue=&Objects%3ATicket=&Objects%3ATransaction=&Objects%3AUser=&Users%3Alimit=&Users%3Astatus=enabled&Users%3Aname=<% $user->Name %>&Users%3Aemail=&Users%3Amember_of=&Users%3Anot_member_of=&Users%3Areplace_relations=&Users%3Ano_tickets=&Users%3Ano_ticket_transactions=&Attachments%3Alimit=&Attachments%3Afiles_only=&Attachments%3Afile=&Attachments%3Alonger=&Tickets%3Alimit=&Tickets%3Aquery=&Tickets%3Awith_linked=&Tickets%3Aapply_query_to_linked=&Search=Search"><button>Remove User Information</button></a>
    ++        <a href="/Admin/Tools/Shredder/index.html?Plugin=Users&Users%3Astatus=enabled&Users%3Aname=<% $user->Name %>&Users%3Areplace_relations=root&Search=Search"><button>Replace User Information</button></a>
    ++        <a href="/Admin/Tools/Shredder/index.html?Plugin=Users&Users%3Astatus=enabled&Users%3Aname=<% $user->Name %>&Search=Search"><button>Remove User Information</button></a>
     +    </div>
     +</div>
     +</&>
    @@ -76,11 +84,14 @@
     +my $user = RT::User->new($session{'CurrentUser'});
     +$user->Load($session{'CurrentUser'});
     +
    -+# Number of records that will be Anonymized
    ++# Number of attachments that will be Anonymized
    ++my $attachments = RT::Attachments->new( $session{CurrentUser} );
    ++$attachments->LimitNotEmpty();
     +my $count = 0;
    -+foreach my $method ( qw(Creator LastUpdatedBy) ) {
    -+    next unless $user->_Accessible( $method => 'read' );
    -+    $count += 1;
    ++while (my $attachment = $attachments->Next) {
    ++    if ( $attachment->Content =~ /$user->EmailAddress/ ) {
    ++        $count += 1;
    ++    }
     +}
     +</%init>
     +
2: 866989b18 ! 2: b6f1f2e20 Add portlet for removing user info to modify page
    @@ -26,19 +26,31 @@
     +        my $method = 'Set' . $attr;
     +            $UserObj->$method('');
     +    }
    -+    my $valid_email = 1;
    ++    my $valid_name = 1;
     +    my $number = '';
    -+    while ( $valid_email ) {
    ++    while ( $valid_name ) {
     +        my @Chars = ('1'..'9');
     +        for (1..9) {
     +            $number .= $Chars[int rand @Chars];
     +        }
    -+        $valid_email = !$UserObj->ValidateEmail('anon_' . $number . '@example.com');
    ++        $valid_name = !$UserObj->ValidateName('anon_' . $number);
     +    }
     +    $UserObj->SetName('anon_' . $number);
    -+    $UserObj->SetEmailAddress('anon_' . $number . '@example.com');
    ++
    ++    my $attachments = RT::Attachments->new( $session{CurrentUser} );
    ++    $attachments->LimitNotEmpty();
    ++    while (my $attachment = $attachments->Next) {
    ++        my $str = $attachment->Content;
    ++        my $find = $UserObj->EmailAddress;
    ++        my $replace = "anon\@example.com";
    ++        $find = quotemeta $find;
    ++
    ++        $str =~ s/$find/$replace/gim;
    ++        $attachment->_Set( Field => 'Content', Value => $str );
    ++    }
     +}
     +
      # This code does automatic redirection if any updates happen.
      MaybeRedirectForResults(
          Actions   => \@results,
    +
-:  ------- > 3: 432578d90 Check that user information is anonymized



More information about the rt-commit mailing list