summaryrefslogtreecommitdiffstats
path: root/Bugzilla/User.pm
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-07-19 04:42:56 +0200
committerGitHub <noreply@github.com>2018-07-19 04:42:56 +0200
commit351b399991094e57e890a9291484c4ab69ca628b (patch)
tree29b5eb8c82ac00978ab37345bb3c11ad84eb48e1 /Bugzilla/User.pm
parent40a8efb9cf0cf27335a34097653f82f943caf5a2 (diff)
downloadbugzilla-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.pm10
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