diff options
author | Robert Speicher <rspeicher@gmail.com> | 2016-02-29 17:05:36 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-02-29 17:10:46 -0500 |
commit | 128757a7f97b3dc0bf2efd4fac49dc0eaa0af04c (patch) | |
tree | 80bed36a8c560bd7828765455d4ca5390dd51b46 /app | |
parent | e5276ee6ab24e52740a72582eda188a698584bb3 (diff) | |
download | gitlab-ce-128757a7f97b3dc0bf2efd4fac49dc0eaa0af04c.tar.gz |
Properly check for a pre-existing error in `User#namespace_uniq`rs-fix-user-namespace_uniq
Rails adds an empty error to the Errors object even if you just call
`#[]` on it:
```
[1] pry(main)> u = User.last
[2] pry(main)> u.errors.keys
=> []
[3] pry(main)> u.errors[:username].present?
=> false
[4] pry(main)> u.errors.keys
=> [:username]
```
Diffstat (limited to 'app')
-rw-r--r-- | app/models/user.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 6baf2468ade..913a32854ac 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -372,7 +372,8 @@ class User < ActiveRecord::Base def namespace_uniq # Return early if username already failed the first uniqueness validation - return if self.errors[:username].include?('has already been taken') + return if self.errors.key?(:username) && + self.errors[:username].include?('has already been taken') namespace_name = self.username existing_namespace = Namespace.by_path(namespace_name) |