summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-01-07 17:36:24 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-01-07 17:36:24 +0200
commitfb470e8e2aff80a16b56f9c5422c04e74dcb213c (patch)
tree017618080e17d3f3e5da8b360c0b6c7390a252c8 /app/models
parenta0bd09ab830899237ada52f02437164d7eaaf1ed (diff)
downloadgitlab-ce-fb470e8e2aff80a16b56f9c5422c04e74dcb213c.tar.gz
Validate username uniq in scope of namespace
Diffstat (limited to 'app/models')
-rw-r--r--app/models/user.rb8
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