diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-01-07 17:36:24 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-01-07 17:36:24 +0200 |
commit | fb470e8e2aff80a16b56f9c5422c04e74dcb213c (patch) | |
tree | 017618080e17d3f3e5da8b360c0b6c7390a252c8 /app/models | |
parent | a0bd09ab830899237ada52f02437164d7eaaf1ed (diff) | |
download | gitlab-ce-fb470e8e2aff80a16b56f9c5422c04e74dcb213c.tar.gz |
Validate username uniq in scope of namespace
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/user.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 341b96a0d91..55d75892fc4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -67,6 +67,8 @@ class User < ActiveRecord::Base message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" } + validate :namespace_uniq, if: ->(user) { user.username_changed? } + before_validation :generate_password, on: :create before_save :ensure_authentication_token alias_attribute :private_token, :authentication_token @@ -135,6 +137,12 @@ class User < ActiveRecord::Base end end + def namespace_uniq + namespace_name = self.username + if Namespace.find_by_path(namespace_name) + self.errors.add :username, "already exist" + end + end # Namespaces user has access to def namespaces |