[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