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 | ... | ... |