4 roles permission system

This commit is contained in:
Dmitriy Zaporozhets 2012-02-16 09:03:55 +02:00
parent dac7c44ab3
commit 1c62ec09b0
18 changed files with 66 additions and 111 deletions

View file

@ -64,9 +64,8 @@ describe Note do
describe :read do
before do
@p1.users_projects.create(:user => @u1, :project_access => Project::PROJECT_N)
@p1.users_projects.create(:user => @u2, :project_access => Project::PROJECT_R)
@p2.users_projects.create(:user => @u3, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:user => @u2, :project_access => UsersProject::GUEST)
@p2.users_projects.create(:user => @u3, :project_access => UsersProject::GUEST)
end
it { @abilities.allowed?(@u1, :read_note, @p1).should be_false }
@ -76,9 +75,8 @@ describe Note do
describe :write do
before do
@p1.users_projects.create(:user => @u1, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:user => @u2, :project_access => Project::PROJECT_RW)
@p2.users_projects.create(:user => @u3, :project_access => Project::PROJECT_RW)
@p1.users_projects.create(:user => @u2, :project_access => UsersProject::DEVELOPER)
@p2.users_projects.create(:user => @u3, :project_access => UsersProject::DEVELOPER)
end
it { @abilities.allowed?(@u1, :write_note, @p1).should be_false }
@ -88,9 +86,9 @@ describe Note do
describe :admin do
before do
@p1.users_projects.create(:user => @u1, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:user => @u2, :project_access => Project::PROJECT_RWA)
@p2.users_projects.create(:user => @u3, :project_access => Project::PROJECT_RWA)
@p1.users_projects.create(:user => @u1, :project_access => UsersProject::REPORTER)
@p1.users_projects.create(:user => @u2, :project_access => UsersProject::MASTER)
@p2.users_projects.create(:user => @u3, :project_access => UsersProject::MASTER)
end
it { @abilities.allowed?(@u1, :admin_note, @p1).should be_false }

View file

@ -12,8 +12,7 @@ describe Project do
describe "read access" do
before do
@p1.users_projects.create(:project => @p1, :user => @u1, :project_access => Project::PROJECT_N)
@p1.users_projects.create(:project => @p1, :user => @u2, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:project => @p1, :user => @u2, :project_access => UsersProject::REPORTER)
end
it { @abilities.allowed?(@u1, :read_project, @p1).should be_false }
@ -22,8 +21,7 @@ describe Project do
describe "write access" do
before do
@p1.users_projects.create(:project => @p1, :user => @u1, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:project => @p1, :user => @u2, :project_access => Project::PROJECT_RW)
@p1.users_projects.create(:project => @p1, :user => @u2, :project_access => UsersProject::DEVELOPER)
end
it { @abilities.allowed?(@u1, :write_project, @p1).should be_false }
@ -32,8 +30,8 @@ describe Project do
describe "admin access" do
before do
@p1.users_projects.create(:project => @p1, :user => @u1, :project_access => Project::PROJECT_RW)
@p1.users_projects.create(:project => @p1, :user => @u2, :project_access => Project::PROJECT_RWA)
@p1.users_projects.create(:project => @p1, :user => @u1, :project_access => UsersProject::DEVELOPER)
@p1.users_projects.create(:project => @p1, :user => @u2, :project_access => UsersProject::MASTER)
end
it { @abilities.allowed?(@u1, :admin_project, @p1).should be_false }

View file

@ -20,11 +20,9 @@ describe "Projects" do
@u2 = Factory :user
@u3 = Factory :user
# full access
@project.users_projects.create(:user => @u1, :project_access => Project::PROJECT_RWA)
# no access
@project.users_projects.create(:user => @u2, :project_access => Project::PROJECT_N)
@project.users_projects.create(:user => @u1, :project_access => UsersProject::MASTER)
# readonly
@project.users_projects.create(:user => @u3, :project_access => Project::PROJECT_R)
@project.users_projects.create(:user => @u3, :project_access => UsersProject::REPORTER)
end
describe "GET /project_code" do

View file

@ -31,8 +31,7 @@ describe "TeamMembers" do
before do
within "#new_team_member" do
select @user_1.name, :from => "team_member_user_id"
select "Report", :from => "team_member_project_access"
select "Pull", :from => "team_member_repo_access"
select "Reporter", :from => "team_member_project_access"
end
end
@ -45,8 +44,7 @@ describe "TeamMembers" do
page.should have_content @user_1.name
@member.reload
@member.project_access.should == Project::PROJECT_RW
@member.repo_access.should == Repository::REPO_R
@member.project_access.should == UsersProject::REPORTER
end
end
end