]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 453681: Do not display the "Yes, delete" button if deleting a user account would...
authorlpsolit%gmail.com <>
Sat, 22 Nov 2008 03:55:57 +0000 (03:55 +0000)
committerlpsolit%gmail.com <>
Sat, 22 Nov 2008 03:55:57 +0000 (03:55 +0000)
editusers.cgi
template/en/default/admin/users/confirm-delete.html.tmpl
template/en/default/filterexceptions.pl

index 674b211f13cf5d0096249049adcef76427f8fc53..b93f1c063c9076928776183db03bdaa3103d0677 100755 (executable)
@@ -358,6 +358,9 @@ if ($action eq 'search') {
     $vars->{'otheruser'}      = $otherUser;
 
     # Find other cross references.
+    $vars->{'attachments'} = $dbh->selectrow_array(
+        'SELECT COUNT(*) FROM attachments WHERE submitter_id = ?',
+        undef, $otherUserID);
     $vars->{'assignee_or_qa'} = $dbh->selectrow_array(
         qq{SELECT COUNT(*)
            FROM bugs
@@ -372,6 +375,9 @@ if ($action eq 'search') {
     $vars->{'bugs_activity'} = $dbh->selectrow_array(
         'SELECT COUNT(*) FROM bugs_activity WHERE who = ?',
         undef, $otherUserID);
+    $vars->{'component_cc'} = $dbh->selectrow_array(
+        'SELECT COUNT(*) FROM component_cc WHERE user_id = ?',
+        undef, $otherUserID);
     $vars->{'email_setting'} = $dbh->selectrow_array(
         'SELECT COUNT(*) FROM email_setting WHERE user_id = ?',
         undef, $otherUserID);
@@ -402,6 +408,9 @@ if ($action eq 'search') {
     $vars->{'profiles_activity'} = $dbh->selectrow_array(
         'SELECT COUNT(*) FROM profiles_activity WHERE who = ? AND userid != ?',
         undef, ($otherUserID, $otherUserID));
+    $vars->{'quips'} = $dbh->selectrow_array(
+        'SELECT COUNT(*) FROM quips WHERE userid = ?',
+        undef, $otherUserID);
     $vars->{'series'} = $dbh->selectrow_array(
         'SELECT COUNT(*) FROM series WHERE creator = ?',
         undef, $otherUserID);
@@ -514,6 +523,7 @@ if ($action eq 'search') {
              $otherUserID);
     $dbh->do('DELETE FROM profiles_activity WHERE userid = ? OR who = ?', undef,
              ($otherUserID, $otherUserID));
+    $dbh->do('UPDATE quips SET userid = NULL where userid = ?', undef, $otherUserID);
     $dbh->do('DELETE FROM tokens WHERE userid = ?', undef, $otherUserID);
     $dbh->do('DELETE FROM user_group_map WHERE user_id = ?', undef,
              $otherUserID);
index 218775dca69fa2f92d98faf6957c277b7266da3b..00f4d32d29c0a2411968a4d1826efc101a1c3a97 100644 (file)
       For now, you can
     [% END %]
 [% ELSE %]
+  [% accept_deletion = 1 %]
 
-  <h2>Confirmation</h2>
-
-  [% display_warning = 0 %]
-
-  [% IF reporter || bugs_activity || flags.setter || longdescs || profiles_activity %]
+  [% IF attachments || reporter || bugs_activity || flags.setter || longdescs || profiles_activity %]
     <div class="criticalmessages">
-      <p>The following deletions are <b>highly not recommended</b> and
-      will generate referential integrity inconsistencies!</p>
+      <p>The following deletions are <b>unsafe</b> and would generate referential
+      integrity inconsistencies!</p>
 
       <ul>
+        [% IF attachments %]
+          <li>
+            [% otheruser.login FILTER html %]
+            <a href="buglist.cgi?field0-0-0=attachments.submitter&type0-0-0=equals&value0-0-0=
+               [%- otheruser.login FILTER url_quote %]">has submitted
+            [% IF attachments == 1 %]
+              one attachment
+            [% ELSE %]
+              [%+ attachments %] attachments
+            [% END %]</a>.
+            If you delete the user account, the database records will be
+            inconsistent, resulting in
+            [% IF attachments == 1 %]
+              this attachment
+            [% ELSE %]
+              these attachments
+            [% END %]
+            not appearing in [% terms.bugs %] any more.
+          </li>
+        [% END %]
         [% IF reporter %]
           <li>
             [% otheruser.login FILTER html %]
         [% END %]
       </ul>
     </div>
-    [% display_warning = 1 %]
+    [% accept_deletion = 0 %]
   [% END %]
 
-  [% IF assignee_or_qa || cc || email_setting || flags.requestee ||
-        namedqueries || profile_setting || series || votes || watch.watched ||
+  [% IF assignee_or_qa || cc || component_cc || email_setting || flags.requestee ||
+        namedqueries || profile_setting || quips || series || votes || watch.watched ||
         watch.watcher || whine_events || whine_schedules %]
     <div class="warningmessages">
       <p>The following deletions are <b>safe</b> and will not generate
             If you delete the user account, it will be removed from these CC lists.
           </li>
         [% END %]
+        [% IF component_cc %]
+          <li>
+            [% otheruser.login FILTER html %] is on the default CC list of
+            [% IF component_cc == 1 %]
+              one component
+            [% ELSE %]
+              [%+ component_cc %] components
+            [% END %]</a>.
+            If you delete the user account, it will be removed from these CC lists.
+          </li>
+        [% END %]
         [% IF email_setting %]
           <li>
             The user's e-mail settings will be deleted along with the user
             will be deleted along with the user account.
           </li>
         [% END %]
+        [% IF quips %]
+          <li>
+            [% otheruser.login FILTER html %] has sumbitted
+            [% IF quip == 1 %]
+              one quip
+            [% ELSE %]
+              [%+ quips %] quips
+            [% END %].
+            If you delete the user account,
+            [% IF votes == 1 %]
+              this quip
+            [% ELSE %]
+              these quips
+            [% END %]
+            will have no author anymore, but will remain available.
+          </li>
+        [% END %]
         [% IF votes %]
           <li>
             [% otheruser.login FILTER html %] has voted on
         [% END %]
       </ul>
     </div>
-    [% display_warning = 1 %]
-  [% END %]
-
-  [% IF display_warning %]
-    <p class="areyoureallyreallysure">
-      Please be aware of the consequences of this before continuing.
-    </p>
-  [% END %]
 
-  <p>Do you really want to delete this user account?</p>
+    [% IF accept_deletion %]
+      <p class="areyoureallyreallysure">
+        Please be aware of the consequences of this before continuing.
+      </p>
+      <p>Do you really want to delete this user account?</p>
 
-  <form method="post" action="editusers.cgi">
-    <p>
-      <input type="submit" id="delete" value="Yes, delete"/>
-      <input type="hidden" name="action" value="delete" />
-      <input type="hidden" name="userid" value="[% otheruser.id %]" />
-      <input type="hidden" name="token" value="[% token FILTER html %]">
-      [% INCLUDE listselectionhiddenfields %]
-    </p>
-  </form>
+      <form method="post" action="editusers.cgi">
+        <p>
+          <input type="submit" id="delete" value="Yes, delete"/>
+          <input type="hidden" name="action" value="delete" />
+          <input type="hidden" name="userid" value="[% otheruser.id %]" />
+          <input type="hidden" name="token" value="[% token FILTER html %]">
+          [% INCLUDE listselectionhiddenfields %]
+        </p>
+      </form>
+      <p>If you do not want to delete the user account at this time,
+    [% ELSE %]
+      <p><b>You cannot delete this user account</b> due to unsafe actions reported above. You can
+    [% END %]
 
-  <p>If you do not want to delete the user account at this time,
+  [% END %]
 [% END %]
 
   <a href="editusers.cgi?action=edit&amp;userid=[% otheruser.id %]
index 058836602731c18d681f2525a71bd7c0986c2a81..6ef3e5ea23fcdeec64074d8989a8d51ee3d33ada 100644 (file)
 ],
 
 'admin/users/confirm-delete.html.tmpl' => [
+  'attachments',
   'reporter',
   'assignee_or_qa',
   'cc',
+  'component_cc',
   'flags.requestee',
   'flags.setter',
   'longdescs',
+  'quips',
   'votes',
   'series',
   'watch.watched',