diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-03-01 19:02:57 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-03-01 19:02:57 +0300 |
commit | acd9881061a3196d1ed869448ea6c321301f9ac7 (patch) | |
tree | c66757f82536e5f9e99a75532bf1eb89c3808c16 | |
parent | 204a9895333178cc90b40ef365ad566d750fa594 (diff) | |
parent | 128757a7f97b3dc0bf2efd4fac49dc0eaa0af04c (diff) |
Merge branch 'rs-fix-user-namespace_uniq' into 'master'
Properly check for a pre-existing error in `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]
```
See merge request !3017
-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 4bc4ab8de7f..2dfef208ee5 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -373,7 +373,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) |