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,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 "Projects" do | @@ -20,11 +20,11 @@ describe "Projects" 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 |