Commit fb470e8e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Validate username uniq in scope of namespace

parent a0bd09ab
...@@ -67,6 +67,8 @@ class User < ActiveRecord::Base ...@@ -67,6 +67,8 @@ class User < ActiveRecord::Base
message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" } message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
validate :namespace_uniq, if: ->(user) { user.username_changed? }
before_validation :generate_password, on: :create before_validation :generate_password, on: :create
before_save :ensure_authentication_token before_save :ensure_authentication_token
alias_attribute :private_token, :authentication_token alias_attribute :private_token, :authentication_token
...@@ -135,6 +137,12 @@ class User < ActiveRecord::Base ...@@ -135,6 +137,12 @@ class User < ActiveRecord::Base
end end
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 # Namespaces user has access to
def namespaces def namespaces
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
%i.icon-ok %i.icon-ok
Saved Saved
%span.update-failed.cred.hide %span.update-failed.cred.hide
%i.icon-ok %i.icon-remove
Failed Failed
%ul.cred %ul.cred
%li It will change web url for personal projects. %li It will change web url for personal projects.
......
...@@ -50,12 +50,12 @@ class ProjectMilestones < Spinach::FeatureSteps ...@@ -50,12 +50,12 @@ class ProjectMilestones < Spinach::FeatureSteps
end end
Then "I should see 3 issues" do Then "I should see 3 issues" do
page.should have_selector('.milestone-issue-filter li', count: 4) page.should have_selector('.milestone-issue-filter .well-list li', count: 4)
page.should have_selector('.milestone-issue-filter li.hide', count: 1) page.should have_selector('.milestone-issue-filter .well-list li.hide', count: 1)
end end
Then "I should see 4 issues" do Then "I should see 4 issues" do
page.should have_selector('.milestone-issue-filter li', count: 4) page.should have_selector('.milestone-issue-filter .well-list li', count: 4)
page.should_not have_selector('.milestone-issue-filter li.hide') page.should_not have_selector('.milestone-issue-filter .well-list li.hide')
end end
end end
task :travis do desc "Travis run tests"
["rake spinach", "rake spec"].each do |cmd| task :travis => [
puts "Starting to run #{cmd}..." :spinach,
system("export DISPLAY=:99.0 && bundle exec #{cmd}") :spec
raise "#{cmd} failed!" unless $?.exitstatus == 0 ]
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment