Commit 1ba28aaef8a985f6e06b2a2673dcaf4723843241

Authored by Dmitriy Zaporozhets
1 parent 640018ba

Implement UsersProject project_access validation

app/models/users_project.rb
@@ -28,6 +28,7 @@ class UsersProject < ActiveRecord::Base @@ -28,6 +28,7 @@ class UsersProject < ActiveRecord::Base
28 28
29 validates :user, presence: true 29 validates :user, presence: true
30 validates :user_id, uniqueness: { :scope => [:project_id], message: "already exists in project" } 30 validates :user_id, uniqueness: { :scope => [:project_id], message: "already exists in project" }
  31 + validates :project_access, inclusion: { in: [GUEST, REPORTER, DEVELOPER, MASTER] }, presence: true
31 validates :project, presence: true 32 validates :project, presence: true
32 33
33 delegate :name, :email, to: :user, prefix: true 34 delegate :name, :email, to: :user, prefix: true
spec/factories.rb
@@ -45,6 +45,7 @@ FactoryGirl.define do @@ -45,6 +45,7 @@ FactoryGirl.define do
45 factory :users_project do 45 factory :users_project do
46 user 46 user
47 project 47 project
  48 + project_access { UsersProject::MASTER }
48 end 49 end
49 50
50 factory :issue do 51 factory :issue do
spec/helpers/gitlab_markdown_helper_spec.rb
@@ -85,7 +85,7 @@ describe GitlabMarkdownHelper do @@ -85,7 +85,7 @@ describe GitlabMarkdownHelper do
85 let(:expected) { project_team_member_path(project, member) } 85 let(:expected) { project_team_member_path(project, member) }
86 86
87 before do 87 before do
88 - project.users << user 88 + project.add_access(user, :admin)
89 end 89 end
90 90
91 it "should link using a simple name" do 91 it "should link using a simple name" do
@@ -314,7 +314,7 @@ describe GitlabMarkdownHelper do @@ -314,7 +314,7 @@ describe GitlabMarkdownHelper do
314 end 314 end
315 315
316 it "should handle references in lists" do 316 it "should handle references in lists" do
317 - project.users << user 317 + project.add_access(user, :admin)
318 318
319 actual = "\n* dark: ##{issue.id}\n* light by @#{member.user.username}" 319 actual = "\n* dark: ##{issue.id}\n* light by @#{member.user.username}"
320 320
spec/models/system_hook_spec.rb
@@ -56,7 +56,7 @@ describe SystemHook do @@ -56,7 +56,7 @@ describe SystemHook do
56 user = create(:user) 56 user = create(:user)
57 project = create(:project) 57 project = create(:project)
58 with_resque do 58 with_resque do
59 - project.users << user 59 + project.add_access(user, :admin)
60 end 60 end
61 WebMock.should have_requested(:post, @system_hook.url).with(body: /user_add_to_team/).once 61 WebMock.should have_requested(:post, @system_hook.url).with(body: /user_add_to_team/).once
62 end 62 end
@@ -64,7 +64,7 @@ describe SystemHook do @@ -64,7 +64,7 @@ describe SystemHook do
64 it "project_destroy hook" do 64 it "project_destroy hook" do
65 user = create(:user) 65 user = create(:user)
66 project = create(:project) 66 project = create(:project)
67 - project.users << user 67 + project.add_access(user, :admin)
68 with_resque do 68 with_resque do
69 project.users_projects.clear 69 project.users_projects.clear
70 end 70 end
spec/models/users_project_spec.rb
@@ -29,6 +29,7 @@ describe UsersProject do @@ -29,6 +29,7 @@ describe UsersProject do
29 it { should validate_uniqueness_of(:user_id).scoped_to(:project_id).with_message(/already exists/) } 29 it { should validate_uniqueness_of(:user_id).scoped_to(:project_id).with_message(/already exists/) }
30 30
31 it { should validate_presence_of(:project) } 31 it { should validate_presence_of(:project) }
  32 + it { should ensure_inclusion_of(:project_access).in_array(UsersProject.access_roles.values) }
32 end 33 end
33 34
34 describe "Delegate methods" do 35 describe "Delegate methods" do
spec/requests/gitlab_flavored_markdown_spec.rb
@@ -6,7 +6,7 @@ describe &quot;Gitlab Flavored Markdown&quot; do @@ -6,7 +6,7 @@ describe &quot;Gitlab Flavored Markdown&quot; do
6 let(:merge_request) { create(:merge_request, project: project) } 6 let(:merge_request) { create(:merge_request, project: project) }
7 let(:fred) do 7 let(:fred) do
8 u = create(:user, name: "fred") 8 u = create(:user, name: "fred")
9 - project.users << u 9 + project.add_access(u, :admin)
10 u 10 u
11 end 11 end
12 12