summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-03-20 22:55:08 +0100
committerDouwe Maan <douwe@selenight.nl>2016-03-20 22:55:08 +0100
commit7c51d5efecdad1a7f52ffecdf57c86b7b90ca166 (patch)
tree770615e2c9fe547f064a0de0246f397e32ff83c8
parent3058a8fa4c1dfdf50a6f274bfbf280f8d2137168 (diff)
downloadgitlab-ce-7c51d5efecdad1a7f52ffecdf57c86b7b90ca166.tar.gz
Fix some specs
-rw-r--r--app/controllers/admin/projects_controller.rb1
-rw-r--r--app/controllers/projects/application_controller.rb2
-rw-r--r--app/models/project.rb10
-rw-r--r--app/views/events/event/_common.html.haml2
-rw-r--r--db/migrate/20160320204112_index_namespaces_on_visibility_level.rb5
-rw-r--r--db/schema.rb1
-rw-r--r--features/steps/shared/group.rb4
-rw-r--r--spec/controllers/application_controller_spec.rb40
-rw-r--r--spec/lib/banzai/filter/redactor_filter_spec.rb4
-rw-r--r--spec/models/project_security_spec.rb10
-rw-r--r--spec/requests/api/groups_spec.rb2
11 files changed, 20 insertions, 61 deletions
diff --git a/app/controllers/admin/projects_controller.rb b/app/controllers/admin/projects_controller.rb
index ae1de06b983..8b212225b2d 100644
--- a/app/controllers/admin/projects_controller.rb
+++ b/app/controllers/admin/projects_controller.rb
@@ -1,7 +1,6 @@
class Admin::ProjectsController < Admin::ApplicationController
before_action :project, only: [:show, :transfer]
before_action :group, only: [:show, :transfer]
- before_action :repository, only: [:show, :transfer]
def index
@projects = Project.all
diff --git a/app/controllers/projects/application_controller.rb b/app/controllers/projects/application_controller.rb
index 276f80f800a..9c8433c260b 100644
--- a/app/controllers/projects/application_controller.rb
+++ b/app/controllers/projects/application_controller.rb
@@ -67,7 +67,7 @@ class Projects::ApplicationController < ApplicationController
end
def require_non_empty_project
- redirect_to @project if @project.empty_repo?
+ redirect_to namespace_project_path(@project.namespace, @project) if @project.empty_repo?
end
def require_branch_head
diff --git a/app/models/project.rb b/app/models/project.rb
index ab31a635a82..76dcff80bff 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -246,10 +246,6 @@ class Project < ActiveRecord::Base
end
class << self
- def public_and_internal_levels
- [Project::PUBLIC, Project::INTERNAL]
- end
-
def abandoned
where('projects.last_activity_at < ?', 6.months.ago)
end
@@ -976,11 +972,9 @@ class Project < ActiveRecord::Base
end
def visibility_level_allowed_as_fork?(level = self.visibility_level)
- return true unless forked? && forked_project_link.forked_from_project_id.present?
+ return true unless forked?
- from_project = self.forked_from_project
- from_project ||= Project.find(forked_project_link.forked_from_project_id)
- Gitlab::VisibilityLevel.allowed_fork_levels(from_project.visibility_level).include?(level)
+ Gitlab::VisibilityLevel.allowed_fork_levels(forked_from_project.visibility_level).include?(level)
end
def visibility_level_allowed_by_group?(level = self.visibility_level)
diff --git a/app/views/events/event/_common.html.haml b/app/views/events/event/_common.html.haml
index e9e16a7646f..c994e3b997d 100644
--- a/app/views/events/event/_common.html.haml
+++ b/app/views/events/event/_common.html.haml
@@ -4,7 +4,7 @@
= event_action_name(event)
- if event.target
- %strong= link_to event.target.to_reference, [event.project.namespace.becomes(Namespace), event.project, event.target]
+ %strong= link_to event.target.reference_link_text, [event.project.namespace.becomes(Namespace), event.project, event.target]
= event_preposition(event)
diff --git a/db/migrate/20160320204112_index_namespaces_on_visibility_level.rb b/db/migrate/20160320204112_index_namespaces_on_visibility_level.rb
new file mode 100644
index 00000000000..b3145443497
--- /dev/null
+++ b/db/migrate/20160320204112_index_namespaces_on_visibility_level.rb
@@ -0,0 +1,5 @@
+class IndexNamespacesOnVisibilityLevel < ActiveRecord::Migration
+ def change
+ add_index :namespaces, :visibility_level
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 2aa37cc590c..9d1d7d9b823 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -601,6 +601,7 @@ ActiveRecord::Schema.define(version: 20160316204731) do
add_index "namespaces", ["path"], name: "index_namespaces_on_path", unique: true, using: :btree
add_index "namespaces", ["path"], name: "index_namespaces_on_path_trigram", using: :gin, opclasses: {"path"=>"gin_trgm_ops"}
add_index "namespaces", ["type"], name: "index_namespaces_on_type", using: :btree
+ add_index "namespaces", ["visibility_level"], name: "index_namespaces_on_visibility_level", using: :btree
create_table "notes", force: :cascade do |t|
t.text "note"
diff --git a/features/steps/shared/group.rb b/features/steps/shared/group.rb
index ca32faa3159..fe6736dacd4 100644
--- a/features/steps/shared/group.rb
+++ b/features/steps/shared/group.rb
@@ -38,7 +38,7 @@ module SharedGroup
def is_member_of(username, groupname, role)
@project_count ||= 0
user = User.find_by(name: username) || create(:user, name: username)
- group = Group.find_by(name: groupname) || create(:group, name: groupname, visibility_level: Gitlab::VisibilityLevel::PUBLIC)
+ group = Group.find_by(name: groupname) || create(:group, name: groupname)
group.add_user(user, role)
project ||= create(:project, namespace: group, path: "project#{@project_count}")
create(:closed_issue_event, project: project)
@@ -47,6 +47,6 @@ module SharedGroup
end
def owned_group
- @owned_group ||= Group.find_by(name: "Owned", visibility_level: Gitlab::VisibilityLevel::PUBLIC)
+ @owned_group ||= Group.find_by(name: "Owned")
end
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index 55851befc8c..186239d3096 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -30,44 +30,4 @@ describe ApplicationController do
controller.send(:check_password_expiration)
end
end
-
- describe 'check labels authorization' do
- let(:project) { create(:project) }
- let(:user) { create(:user) }
- let(:controller) { ApplicationController.new }
-
- before do
- project.team << [user, :guest]
- allow(controller).to receive(:current_user).and_return(user)
- allow(controller).to receive(:project).and_return(project)
- end
-
- it 'should succeed if issues and MRs are enabled' do
- project.issues_enabled = true
- project.merge_requests_enabled = true
- controller.send(:authorize_read_label!)
- expect(response.status).to eq(200)
- end
-
- it 'should succeed if issues are enabled, MRs are disabled' do
- project.issues_enabled = true
- project.merge_requests_enabled = false
- controller.send(:authorize_read_label!)
- expect(response.status).to eq(200)
- end
-
- it 'should succeed if issues are disabled, MRs are enabled' do
- project.issues_enabled = false
- project.merge_requests_enabled = true
- controller.send(:authorize_read_label!)
- expect(response.status).to eq(200)
- end
-
- it 'should fail if issues and MRs are disabled' do
- project.issues_enabled = false
- project.merge_requests_enabled = false
- expect(controller).to receive(:access_denied!)
- controller.send(:authorize_read_label!)
- end
- end
end
diff --git a/spec/lib/banzai/filter/redactor_filter_spec.rb b/spec/lib/banzai/filter/redactor_filter_spec.rb
index 9acf6304bcb..c2c2fd0eb6a 100644
--- a/spec/lib/banzai/filter/redactor_filter_spec.rb
+++ b/spec/lib/banzai/filter/redactor_filter_spec.rb
@@ -119,7 +119,7 @@ describe Banzai::Filter::RedactorFilter, lib: true do
context 'with data-group' do
it 'removes unpermitted Group references' do
user = create(:user)
- group = create(:group)
+ group = create(:group, :private)
link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter')
doc = filter(link, current_user: user)
@@ -129,7 +129,7 @@ describe Banzai::Filter::RedactorFilter, lib: true do
it 'allows permitted Group references' do
user = create(:user)
- group = create(:group)
+ group = create(:group, :private)
group.add_developer(user)
link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter')
diff --git a/spec/models/project_security_spec.rb b/spec/models/project_security_spec.rb
index 3643ad1b052..e12258c0874 100644
--- a/spec/models/project_security_spec.rb
+++ b/spec/models/project_security_spec.rb
@@ -18,11 +18,11 @@ describe Project, models: true do
let(:report_actions) { Ability.project_report_rules }
let(:dev_actions) { Ability.project_dev_rules }
let(:master_actions) { Ability.project_master_rules }
- let(:admin_actions) { Ability.project_admin_rules }
+ let(:owner_actions) { Ability.project_owner_rules }
describe "Non member rules" do
it "should deny for non-project users any actions" do
- admin_actions.each do |action|
+ owner_actions.each do |action|
expect(@abilities.allowed?(@u1, action, @p1)).to be_falsey
end
end
@@ -90,20 +90,20 @@ describe Project, models: true do
end
end
- describe "Admin Rules" do
+ describe "Owner Rules" do
before do
@p1.project_members.create(project: @p1, user: @u2, access_level: ProjectMember::DEVELOPER)
@p1.project_members.create(project: @p1, user: @u3, access_level: ProjectMember::MASTER)
end
it "should deny for masters admin-specific actions" do
- [admin_actions - master_actions].each do |action|
+ [owner_actions - master_actions].each do |action|
expect(@abilities.allowed?(@u2, action, @p1)).to be_falsey
end
end
it "should allow for project owner any admin actions" do
- admin_actions.each do |action|
+ owner_actions.each do |action|
expect(@abilities.allowed?(@u4, action, @p1)).to be_truthy
end
end
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index 4cfa49d1566..41c9cacd455 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -9,7 +9,7 @@ describe API::API, api: true do
let(:admin) { create(:admin) }
let(:avatar_file_path) { File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif') }
let!(:group1) { create(:group, avatar: File.open(avatar_file_path)) }
- let!(:group2) { create(:group) }
+ let!(:group2) { create(:group, :private) }
let!(:project1) { create(:project, namespace: group1) }
let!(:project2) { create(:project, namespace: group2) }