]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1476288 - Replace moz_nick with (new, revised) nick and also attempt to disallow...
authorDylan William Hardison <dylan@hardison.net>
Thu, 19 Jul 2018 02:42:56 +0000 (22:42 -0400)
committerGitHub <noreply@github.com>
Thu, 19 Jul 2018 02:42:56 +0000 (22:42 -0400)
Bugzilla/User.pm
extensions/BugModal/lib/MonkeyPatches.pm
extensions/BugModal/template/en/default/bug_modal/activity_stream.html.tmpl
extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl
extensions/BugModal/template/en/default/bug_modal/user.html.tmpl
template/en/default/global/messages.html.tmpl

index 9faed25cccbe2b0d6f72a137af43ba2bfe624fdb..4a58043a032c643521fbc3bd7dc2c8f92c0b7b71 100644 (file)
@@ -482,11 +482,15 @@ sub set_login {
 }
 
 sub _generate_nickname {
-    my ($name, $login) = @_;
+    my ($name, $login, $id) = @_;
     my ($nick) = extract_nicks($name);
     if (!$nick) {
         $nick = "";
     }
+    my ($count) = Bugzilla->dbh->selectrow_array('SELECT COUNT(*) FROM profiles WHERE nickname = ? AND userid != ?', undef, $nick, $id);
+    if ($count) {
+        $nick = "";
+    }
     return $nick;
 }
 
@@ -494,7 +498,7 @@ sub set_name {
     my ($self, $name) = @_;
     $self->set('realname', $name);
     delete $self->{identity};
-    $self->set('nickname', _generate_nickname($name, $self->login));
+    $self->set('nickname', _generate_nickname($name, $self->login, $self->id));
 }
 
 sub set_nick {
@@ -2532,7 +2536,7 @@ sub create {
     my $dbh = Bugzilla->dbh;
 
     $dbh->bz_start_transaction();
-    $params->{nickname} = _generate_nickname($params->{realname}, $params->{login_name});
+    $params->{nickname} = _generate_nickname($params->{realname}, $params->{login_name}, 0);
     my $user = $class->SUPER::create($params);
 
     # Turn on all email for the new user
index 88fce11af40ce2ec82e8a6abc2f189558127be1a..54bd6e5607e03ce45e4f10f10be33ca03e726e53 100644 (file)
@@ -40,31 +40,6 @@ sub active_attachments {
 
 1;
 
-package Bugzilla::User;
-
-use 5.10.1;
-use strict;
-use warnings;
-
-sub moz_nick {
-    my ($self) = @_;
-    if (!exists $self->{moz_nick}) {
-        if ($self->name =~ /:?:(\S+?)\b/) {
-            $self->{moz_nick} = $1;
-        }
-        elsif ($self->name) {
-            $self->{moz_nick} = $self->name;
-        }
-        else {
-            $self->login =~ /^([^\@]+)\@/;
-            $self->{moz_nick} = $1;
-        }
-    }
-    return $self->{moz_nick};
-}
-
-1;
-
 package Bugzilla::Attachment;
 
 use 5.10.1;
index 883393fba669b404022cd8fb0bf9f29d4819f0c5..af2077e00b9b698a117edc2553632605aac5ee96 100644 (file)
             [% END %]
             <button type="button" class="reply-btn minor"
               data-reply-id="[% comment.count FILTER none %]"
-              data-reply-name="[% comment.author.name || comment.author.moz_nick FILTER html %]"
+              data-reply-name="[% comment.author.name || comment.author.nick FILTER html %]"
               >Reply</button>
           [% END %]
           <button type="button" class="change-spinner minor" id="cs-[% comment.count FILTER none %]">-</button>
       <tr>
         <td class="comment-collapse-reason"
             [% IF user.setting("ui_use_absolute_time") == "on" %]
-            title="[% comment.author.moz_nick FILTER html %] [[% comment.creation_ts FILTER time("%Y-%m-%d %H:%M %Z") FILTER html %]]">
+            title="[% comment.author.nick FILTER html %] [[% comment.creation_ts FILTER time("%Y-%m-%d %H:%M %Z") FILTER html %]]">
             [% ELSE %]
-            title="[% comment.author.moz_nick FILTER html %] [[% comment.creation_ts FILTER time_duration FILTER html %]]">
+            title="[% comment.author.nick FILTER html %] [[% comment.creation_ts FILTER time_duration FILTER html %]]">
             [% END %]
             Comment hidden ([% comment.collapsed_reason FILTER html %])
         </td>
index d82e1a684d62254dab30aa1c0f639af2b599bc77..e2c8bba261a1203b23536c9b6362a747d67b5fa8 100644 (file)
 
 [%
   sub = [];
-  sub.push("Reporter: " _ bug.reporter.moz_nick);
-  sub.push(unassigned ? "Unassigned" : "Assigned: " _ bug.assigned_to.moz_nick);
+  sub.push("Reporter: " _ bug.reporter.nick);
+  sub.push(unassigned ? "Unassigned" : "Assigned: " _ bug.assigned_to.nick);
   IF bug.mentors.size;
     sub.push("Mentored");
   END;
index 9eda7b9367d2694e9072b8a8596be2d24a585154..6a0ce4e24116f2617f5f3745a6e115d2a44fb44a 100644 (file)
@@ -30,9 +30,9 @@ END;
 
     [% IF simple %]
       [% IF user.id %]
-        <span class="fn" title="[% u.identity FILTER html %]">[% u.moz_nick FILTER html %]</span>
+        <span class="fn" title="[% u.identity FILTER html %]">[% u.nick FILTER html %]</span>
       [% ELSE %]
-        <span class="fn">[% u.moz_nick FILTER html %]</span>
+        <span class="fn">[% u.nick FILTER html %]</span>
       [% END %]
 
     [% ELSE %]
@@ -52,7 +52,7 @@ END;
             href="user_profile?user_id=[% u.id FILTER none %]"
           [% END %]
           >
-          <span class="[% user.id ? 'fn' : 'fna' %]">[% nick_only ? u.moz_nick : (u.name || u.nick) FILTER html %]</span>
+          <span class="[% user.id ? 'fn' : 'fna' %]">[% nick_only ? u.nick : (u.name || u.nick) FILTER html %]</span>
           [%~~%]
         </a>
       [% END %]
index b2430b7ed27f0d9c200eab4fcdb5fa88bc35adb4..591617f3eb0339d6646e699e3c7fbda39324a853 100644 (file)
@@ -56,6 +56,8 @@
               The login is now [% otheruser.login FILTER html %].
             [% ELSIF field == 'realname' %]
               The real name has been updated.
+            [% ELSIF field == 'nickname' %]
+              The nickname is now [% otheruser.nick FILTER html %].
             [% ELSIF field == 'cryptpassword' %]
               A new password has been set.
             [% ELSIF field == 'disabledtext' %]