Commit 68154e8fe9d6266f3b1ae00e48530143f87cd138

Authored by Dmitriy Zaporozhets
1 parent cb021e58

spec fix

app/models/project.rb
@@ -114,9 +114,18 @@ class Project < ActiveRecord::Base @@ -114,9 +114,18 @@ class Project < ActiveRecord::Base
114 !!commit 114 !!commit
115 end 115 end
116 116
  117 + # Compatible with all access rights
  118 + # Should be rewrited for new access rights
117 def add_access(user, *access) 119 def add_access(user, *access)
  120 + access = if access.include?(:admin)
  121 + { :project_access => PROJECT_RWA }
  122 + elsif access.include?(:write)
  123 + { :project_access => PROJECT_RW }
  124 + else
  125 + { :project_access => PROJECT_R }
  126 + end
118 opts = { :user => user } 127 opts = { :user => user }
119 - access.each { |name| opts.merge!(name => true) } 128 + opts.merge!(access)
120 users_projects.create(opts) 129 users_projects.create(opts)
121 end 130 end
122 131
spec/models/project_security_spec.rb
@@ -10,30 +10,30 @@ describe Project do @@ -10,30 +10,30 @@ describe Project do
10 @abilities << Ability 10 @abilities << Ability
11 end 11 end
12 12
13 - describe :read do 13 + describe "read access" do
14 before do 14 before do
15 - @p1.users_projects.create(:project => @p1, :user => @u1, :read => false)  
16 - @p1.users_projects.create(:project => @p1, :user => @u2, :read => true) 15 + @p1.users_projects.create(:project => @p1, :user => @u1, :project_access => Project::PROJECT_N)
  16 + @p1.users_projects.create(:project => @p1, :user => @u2, :project_access => Project::PROJECT_R)
17 end 17 end
18 18
19 it { @abilities.allowed?(@u1, :read_project, @p1).should be_false } 19 it { @abilities.allowed?(@u1, :read_project, @p1).should be_false }
20 it { @abilities.allowed?(@u2, :read_project, @p1).should be_true } 20 it { @abilities.allowed?(@u2, :read_project, @p1).should be_true }
21 end 21 end
22 22
23 - describe :write do 23 + describe "write access" do
24 before do 24 before do
25 - @p1.users_projects.create(:project => @p1, :user => @u1, :write => false)  
26 - @p1.users_projects.create(:project => @p1, :user => @u2, :write => true) 25 + @p1.users_projects.create(:project => @p1, :user => @u1, :project_access => Project::PROJECT_R)
  26 + @p1.users_projects.create(:project => @p1, :user => @u2, :project_access => Project::PROJECT_RW)
27 end 27 end
28 28
29 it { @abilities.allowed?(@u1, :write_project, @p1).should be_false } 29 it { @abilities.allowed?(@u1, :write_project, @p1).should be_false }
30 it { @abilities.allowed?(@u2, :write_project, @p1).should be_true } 30 it { @abilities.allowed?(@u2, :write_project, @p1).should be_true }
31 end 31 end
32 32
33 - describe :admin do 33 + describe "admin access" do
34 before do 34 before do
35 - @p1.users_projects.create(:project => @p1, :user => @u1, :admin => false)  
36 - @p1.users_projects.create(:project => @p1, :user => @u2, :admin => true) 35 + @p1.users_projects.create(:project => @p1, :user => @u1, :project_access => Project::PROJECT_RW)
  36 + @p1.users_projects.create(:project => @p1, :user => @u2, :project_access => Project::PROJECT_RWA)
37 end 37 end
38 38
39 it { @abilities.allowed?(@u1, :admin_project, @p1).should be_false } 39 it { @abilities.allowed?(@u1, :admin_project, @p1).should be_false }
spec/requests/projects_security_spec.rb
@@ -20,11 +20,11 @@ describe &quot;Projects&quot; do @@ -20,11 +20,11 @@ describe &quot;Projects&quot; do
20 @u2 = Factory :user 20 @u2 = Factory :user
21 @u3 = Factory :user 21 @u3 = Factory :user
22 # full access 22 # full access
23 - @project.users_projects.create(:user => @u1, :read => true, :write => true, :admin => true) 23 + @project.users_projects.create(:user => @u1, :project_access => Project::PROJECT_RWA)
24 # no access 24 # no access
25 - @project.users_projects.create(:user => @u2, :read => false, :write => false, :admin => false) 25 + @project.users_projects.create(:user => @u2, :project_access => Project::PROJECT_N)
26 # readonly 26 # readonly
27 - @project.users_projects.create(:user => @u3, :read => true, :write => false, :admin => false) 27 + @project.users_projects.create(:user => @u3, :project_access => Project::PROJECT_R)
28 end 28 end
29 29
30 describe "GET /project_code" do 30 describe "GET /project_code" do