Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-30 17:43:32 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-30 17:43:32 +0400
commit4967c087862e5c7c5009605000380d4451ce07ec (patch)
tree950d2fb0204727ec26528a76553d4c5da3b3f845
parent13f017f01b8363466576c1934b42a450bb1cc19a (diff)
Fix signup and project visibility
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/controllers/registrations_controller.rb1
-rw-r--r--app/models/project.rb3
-rw-r--r--lib/api/users.rb2
-rw-r--r--spec/requests/api/users_spec.rb13
-rw-r--r--spec/services/notes/create_service_spec.rb1
-rw-r--r--spec/services/projects/create_service_spec.rb89
6 files changed, 4 insertions, 105 deletions
diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb
index 5f18bac82ed..bf4c217fee1 100644
--- a/app/controllers/registrations_controller.rb
+++ b/app/controllers/registrations_controller.rb
@@ -13,7 +13,6 @@ class RegistrationsController < Devise::RegistrationsController
def build_resource(hash=nil)
super
- self.resource.with_defaults
end
private
diff --git a/app/models/project.rb b/app/models/project.rb
index c242fb0fc5f..33aa4e72fbc 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -97,6 +97,9 @@ class Project < ActiveRecord::Base
message: "only letters, digits & '_' '-' '.' allowed. Letter or digit should be first" }
validates :issues_enabled, :merge_requests_enabled,
:wiki_enabled, inclusion: { in: [true, false] }
+ validates :visibility_level,
+ exclusion: { in: gitlab_config.restricted_visibility_levels },
+ if: -> { gitlab_config.restricted_visibility_levels.any? }
validates :issues_tracker_id, length: { maximum: 255 }, allow_blank: true
validates :namespace, presence: true
validates_uniqueness_of :name, scope: :namespace_id
diff --git a/lib/api/users.rb b/lib/api/users.rb
index 6085edab599..69553f16397 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -96,7 +96,7 @@ module API
admin = attrs.delete(:admin)
user.admin = admin unless admin.nil?
- if user.update_attributes(attrs, as: :admin)
+ if user.update_attributes(attrs)
present user, with: Entities::UserFull
else
not_found!
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index c3eec56d133..8bbe9b5b736 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -97,19 +97,6 @@ describe API::API, api: true do
response.status.should == 201
end
- it "creating a user should respect default project limit" do
- limit = 123456
- Gitlab.config.gitlab.stub(:default_projects_limit).and_return(limit)
- attr = attributes_for(:user )
- expect {
- post api("/users", admin), attr
- }.to change { User.count }.by(1)
- user = User.find_by(username: attr[:username])
- user.projects_limit.should == limit
- user.theme_id.should == Gitlab::Theme::MARS
- Gitlab.config.gitlab.unstub(:default_projects_limit)
- end
-
it "should not create user with invalid email" do
post api("/users", admin), { email: "invalid email", password: 'password' }
response.status.should == 400
diff --git a/spec/services/notes/create_service_spec.rb b/spec/services/notes/create_service_spec.rb
index 106c14bc015..f59786efcf9 100644
--- a/spec/services/notes/create_service_spec.rb
+++ b/spec/services/notes/create_service_spec.rb
@@ -11,7 +11,6 @@ describe Notes::CreateService do
project.team << [user, :master]
opts = {
note: 'Awesome comment',
- description: 'please fix',
noteable_type: 'Issue',
noteable_id: issue.id
}
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb
index 74c23418a28..9c97dad2ff0 100644
--- a/spec/services/projects/create_service_spec.rb
+++ b/spec/services/projects/create_service_spec.rb
@@ -55,95 +55,6 @@ describe Projects::CreateService do
it { File.exists?(@path).should be_false }
end
end
-
- context 'respect configured visibility setting' do
- before(:each) do
- @settings = double("settings")
- @settings.stub(:issues) { true }
- @settings.stub(:merge_requests) { true }
- @settings.stub(:wiki) { true }
- @settings.stub(:snippets) { true }
- Gitlab.config.gitlab.stub(restricted_visibility_levels: [])
- Gitlab.config.gitlab.stub(:default_projects_features).and_return(@settings)
- end
-
- context 'should be public when setting is public' do
- before do
- @settings.stub(:visibility_level) { Gitlab::VisibilityLevel::PUBLIC }
- @project = create_project(@user, @opts)
- end
-
- it { @project.public?.should be_true }
- end
-
- context 'should be private when setting is private' do
- before do
- @settings.stub(:visibility_level) { Gitlab::VisibilityLevel::PRIVATE }
- @project = create_project(@user, @opts)
- end
-
- it { @project.private?.should be_true }
- end
-
- context 'should be internal when setting is internal' do
- before do
- @settings.stub(:visibility_level) { Gitlab::VisibilityLevel::INTERNAL }
- @project = create_project(@user, @opts)
- end
-
- it { @project.internal?.should be_true }
- end
- end
-
- context 'respect configured visibility restrictions setting' do
- before(:each) do
- @settings = double("settings")
- @settings.stub(:issues) { true }
- @settings.stub(:merge_requests) { true }
- @settings.stub(:wiki) { true }
- @settings.stub(:snippets) { true }
- @settings.stub(:visibility_level) { Gitlab::VisibilityLevel::PRIVATE }
- @restrictions = [ Gitlab::VisibilityLevel::PUBLIC ]
- Gitlab.config.gitlab.stub(restricted_visibility_levels: @restrictions)
- Gitlab.config.gitlab.stub(:default_projects_features).and_return(@settings)
- end
-
- context 'should be private when option is public' do
- before do
- @opts.merge!(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
- @project = create_project(@user, @opts)
- end
-
- it { @project.private?.should be_true }
- end
-
- context 'should be public when option is public for admin' do
- before do
- @opts.merge!(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
- @project = create_project(@admin, @opts)
- end
-
- it { @project.public?.should be_true }
- end
-
- context 'should be private when option is private' do
- before do
- @opts.merge!(visibility_level: Gitlab::VisibilityLevel::PRIVATE)
- @project = create_project(@user, @opts)
- end
-
- it { @project.private?.should be_true }
- end
-
- context 'should be internal when option is internal' do
- before do
- @opts.merge!(visibility_level: Gitlab::VisibilityLevel::INTERNAL)
- @project = create_project(@user, @opts)
- end
-
- it { @project.internal?.should be_true }
- end
- end
end
def create_project(user, opts)