diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-07-19 04:42:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-19 04:42:56 +0200 |
commit | 351b399991094e57e890a9291484c4ab69ca628b (patch) | |
tree | 29b5eb8c82ac00978ab37345bb3c11ad84eb48e1 /Bugzilla/User.pm | |
parent | 40a8efb9cf0cf27335a34097653f82f943caf5a2 (diff) | |
download | bugzilla-351b399991094e57e890a9291484c4ab69ca628b.tar.gz bugzilla-351b399991094e57e890a9291484c4ab69ca628b.tar.xz |
Bug 1476288 - Replace moz_nick with (new, revised) nick and also attempt to disallow duplicate nicks
Diffstat (limited to 'Bugzilla/User.pm')
-rw-r--r-- | Bugzilla/User.pm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 9faed25cc..4a58043a0 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -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 |