Commit 68154e8fe9d6266f3b1ae00e48530143f87cd138
1 parent
cb021e58
Exists in
master
and in
4 other branches
spec fix
Showing
3 changed files
with
22 additions
and
13 deletions
Show diff stats
app/models/project.rb
... | ... | @@ -114,9 +114,18 @@ class Project < ActiveRecord::Base |
114 | 114 | !!commit |
115 | 115 | end |
116 | 116 | |
117 | + # Compatible with all access rights | |
118 | + # Should be rewrited for new access rights | |
117 | 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 | 127 | opts = { :user => user } |
119 | - access.each { |name| opts.merge!(name => true) } | |
128 | + opts.merge!(access) | |
120 | 129 | users_projects.create(opts) |
121 | 130 | end |
122 | 131 | ... | ... |
spec/models/project_security_spec.rb
... | ... | @@ -10,30 +10,30 @@ describe Project do |
10 | 10 | @abilities << Ability |
11 | 11 | end |
12 | 12 | |
13 | - describe :read do | |
13 | + describe "read access" do | |
14 | 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 | 17 | end |
18 | 18 | |
19 | 19 | it { @abilities.allowed?(@u1, :read_project, @p1).should be_false } |
20 | 20 | it { @abilities.allowed?(@u2, :read_project, @p1).should be_true } |
21 | 21 | end |
22 | 22 | |
23 | - describe :write do | |
23 | + describe "write access" do | |
24 | 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 | 27 | end |
28 | 28 | |
29 | 29 | it { @abilities.allowed?(@u1, :write_project, @p1).should be_false } |
30 | 30 | it { @abilities.allowed?(@u2, :write_project, @p1).should be_true } |
31 | 31 | end |
32 | 32 | |
33 | - describe :admin do | |
33 | + describe "admin access" do | |
34 | 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 | 37 | end |
38 | 38 | |
39 | 39 | it { @abilities.allowed?(@u1, :admin_project, @p1).should be_false } | ... | ... |
spec/requests/projects_security_spec.rb
... | ... | @@ -20,11 +20,11 @@ describe "Projects" do |
20 | 20 | @u2 = Factory :user |
21 | 21 | @u3 = Factory :user |
22 | 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 | 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 | 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 | 28 | end |
29 | 29 | |
30 | 30 | describe "GET /project_code" do | ... | ... |