gitlabhq/spec/models/project_security_spec.rb
2012-11-13 22:27:45 +11:00

56 lines
1.6 KiB
Ruby

require 'spec_helper'
describe Project do
describe :authorization do
before do
@p1 = create(:project)
@u1 = create(:user)
@u2 = create(:user)
@abilities = Six.new
@abilities << Ability
end
describe "read access" do
before do
@p1.users_projects.create(project: @p1, user: @u2, project_access: UsersProject::REPORTER)
end
it { @abilities.allowed?(@u1, :read_project, @p1).should be_false }
it { @abilities.allowed?(@u2, :read_project, @p1).should be_true }
end
describe "write access" do
before do
@p1.users_projects.create(project: @p1, user: @u2, project_access: UsersProject::DEVELOPER)
end
it { @abilities.allowed?(@u1, :write_project, @p1).should be_false }
it { @abilities.allowed?(@u2, :write_project, @p1).should be_true }
end
describe "admin access" do
before do
@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 }
it { @abilities.allowed?(@u2, :admin_project, @p1).should be_true }
end
end
end
# == Schema Information
#
# Table name: projects
#
# id :integer not null, primary key
# name :string(255)
# path :string(255)
# description :text
# created_at :datetime
# updated_at :datetime
# private_flag :boolean default(TRUE), not null
# code :string(255)
#