[#345] fix relations create; refactoring specs; remove unneded files
This commit is contained in:
parent
1a97bfb67c
commit
4cf3e931bd
|
@ -4,7 +4,7 @@ module Owner
|
||||||
included do
|
included do
|
||||||
validates :owner, presence: true
|
validates :owner, presence: true
|
||||||
after_create do
|
after_create do
|
||||||
relations.create({ actor_id: owner.id, actor_type: owner.class.to_s, role: 'admin' }, without_protection: true)
|
relations.create(actor: owner, role: 'admin')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ class Relation < ActiveRecord::Base
|
||||||
# validate { errors.add(:actor, :taken) if Relation.where(actor_type: self.actor_type, actor_id: self.actor_id).present? }
|
# validate { errors.add(:actor, :taken) if Relation.where(actor_type: self.actor_type, actor_id: self.actor_id).present? }
|
||||||
before_validation :add_default_role
|
before_validation :add_default_role
|
||||||
|
|
||||||
attr_accessible :actor_id, :actor_type, :target_id, :target_type, :role
|
attr_accessible :actor_id, :actor_type, :target_id, :target_type, :actor, :target, :role
|
||||||
|
|
||||||
scope :by_user_through_groups, ->(u) {
|
scope :by_user_through_groups, ->(u) {
|
||||||
where("actor_type = 'User' AND actor_id = ? OR actor_type = 'Group' AND actor_id IN (?)", u.id, u.group_ids)
|
where("actor_type = 'User' AND actor_id = ? OR actor_type = 'Group' AND actor_id IN (?)", u.id, u.group_ids)
|
||||||
|
|
|
@ -132,7 +132,7 @@ describe Api::V1::AdvisoriesController do
|
||||||
context 'for user who has access to update build_list' do
|
context 'for user who has access to update build_list' do
|
||||||
before do
|
before do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
@build_list.save_to_platform.relations.create(role: 'admin', actor: @user)
|
create_relation @build_list.save_to_platform, @user, 'admin'
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -110,8 +110,8 @@ describe Api::V1::BuildListsController do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
@owner_user = @project.owner
|
@owner_user = @project.owner
|
||||||
@member_user = FactoryGirl.create(:user)
|
@member_user = FactoryGirl.create(:user)
|
||||||
@project.relations.create(role: 'reader', actor: @member_user)
|
create_relation(@project, @member_user, 'reader')
|
||||||
@build_list.save_to_platform.relations.create(role: 'admin', actor: @owner_user) # Why it's really need it??
|
create_relation @build_list.save_to_platform, @owner_user, 'admin' # Why it's really need it??
|
||||||
|
|
||||||
# Create and show params:
|
# Create and show params:
|
||||||
@create_params = {build_list: @build_list.attributes.symbolize_keys.merge(:qwerty=>'!')} # wrong parameter
|
@create_params = {build_list: @build_list.attributes.symbolize_keys.merge(:qwerty=>'!')} # wrong parameter
|
||||||
|
@ -541,7 +541,7 @@ describe Api::V1::BuildListsController do
|
||||||
@another_user = FactoryGirl.create(:user)
|
@another_user = FactoryGirl.create(:user)
|
||||||
@build_list.update_column(:status, BuildList::SUCCESS)
|
@build_list.update_column(:status, BuildList::SUCCESS)
|
||||||
@build_list.save_to_repository.update_column(:publish_without_qa, true)
|
@build_list.save_to_repository.update_column(:publish_without_qa, true)
|
||||||
@build_list.project.relations.create!(actor_type: 'User', actor_id: @another_user.id, role: 'writer')
|
create_relation(@build_list.project, @another_user, 'writer')
|
||||||
http_login(@another_user)
|
http_login(@another_user)
|
||||||
do_reject_publish
|
do_reject_publish
|
||||||
end
|
end
|
||||||
|
@ -631,11 +631,11 @@ describe Api::V1::BuildListsController do
|
||||||
# Groups:
|
# Groups:
|
||||||
@owner_group = FactoryGirl.create(:group, owner: @owner_user)
|
@owner_group = FactoryGirl.create(:group, owner: @owner_user)
|
||||||
@member_group = FactoryGirl.create(:group)
|
@member_group = FactoryGirl.create(:group)
|
||||||
@member_group.actors.create role: 'reader', actor_id: @member_user.id, actor_type: 'User'
|
create_actor_relation(@member_group, @member_user, 'reader')
|
||||||
|
|
||||||
@group = FactoryGirl.create(:group)
|
@group = FactoryGirl.create(:group)
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
@group.actors.create role: 'reader', actor_id: @user.id, actor_type: 'User'
|
create_actor_relation(@group, @user, 'reader')
|
||||||
|
|
||||||
old_path = @project.path
|
old_path = @project.path
|
||||||
@project.owner = @owner_group
|
@project.owner = @owner_group
|
||||||
|
@ -643,10 +643,10 @@ describe Api::V1::BuildListsController do
|
||||||
# Move GIT repo into new folder
|
# Move GIT repo into new folder
|
||||||
system "mkdir -p #{@project.path} && mv -f #{old_path}/* #{@project.path}/"
|
system "mkdir -p #{@project.path} && mv -f #{old_path}/* #{@project.path}/"
|
||||||
|
|
||||||
@project.relations.create role: 'reader', actor_id: @member_group.id, actor_type: 'Group'
|
create_relation(@project, @member_group, 'reader')
|
||||||
@project.relations.create role: 'admin', actor_id: @owner_group.id, actor_type: 'Group'
|
create_relation(@project, @owner_group, 'admin')
|
||||||
@build_list.save_to_platform.relations.create(role: 'admin', actor: @owner_group) # Why it's really need it??
|
create_relation(@build_list.save_to_platform, @owner_group, 'admin') # Why it's really need it??
|
||||||
@build_list.save_to_platform.relations.create(role: 'reader', actor: @member_group) # Why it's really need it??
|
create_relation(@build_list.save_to_platform, @member_group, 'reader') # Why it's really need it??
|
||||||
|
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
end
|
end
|
||||||
|
@ -704,7 +704,7 @@ describe Api::V1::BuildListsController do
|
||||||
|
|
||||||
@build_list4 = FactoryGirl.create(:build_list)
|
@build_list4 = FactoryGirl.create(:build_list)
|
||||||
@build_list4.project.update_column(:visibility, 'hidden')
|
@build_list4.project.update_column(:visibility, 'hidden')
|
||||||
@build_list4.project.relations.create! role: 'reader', actor_id: @user.id, actor_type: 'User'
|
create_relation(@build_list4, @user, 'reader')
|
||||||
|
|
||||||
@filter_build_list1 = FactoryGirl.create(:build_list)
|
@filter_build_list1 = FactoryGirl.create(:build_list)
|
||||||
@filter_build_list2 = FactoryGirl.create(:build_list)
|
@filter_build_list2 = FactoryGirl.create(:build_list)
|
||||||
|
@ -787,8 +787,8 @@ describe Api::V1::BuildListsController do
|
||||||
stub_symlink_methods
|
stub_symlink_methods
|
||||||
@owner_user = @project.owner
|
@owner_user = @project.owner
|
||||||
@member_user = FactoryGirl.create(:user)
|
@member_user = FactoryGirl.create(:user)
|
||||||
@project.relations.create(role: 'reader', actor: @member_user)
|
create_relation(@project, @member_user, 'reader')
|
||||||
@build_list.save_to_platform.relations.create(role: 'admin', actor: @owner_user) # Why it's really need it??
|
create_relation(@build_list.save_to_platform, @owner_user, 'admin') # Why it's really need it??
|
||||||
|
|
||||||
# Show params:
|
# Show params:
|
||||||
@show_params = {id: @build_list.id, format: :json}
|
@show_params = {id: @build_list.id, format: :json}
|
||||||
|
@ -843,7 +843,6 @@ describe Api::V1::BuildListsController do
|
||||||
stub_symlink_methods
|
stub_symlink_methods
|
||||||
@owner_user = @project.owner#FactoryGirl.create(:user)
|
@owner_user = @project.owner#FactoryGirl.create(:user)
|
||||||
@member_user = FactoryGirl.create(:user)
|
@member_user = FactoryGirl.create(:user)
|
||||||
#@project.relations.create(role: 'reader', actor: @member_user)
|
|
||||||
|
|
||||||
# Show params:
|
# Show params:
|
||||||
@show_params = {id: @build_list.id, format: :json}
|
@show_params = {id: @build_list.id, format: :json}
|
||||||
|
@ -851,17 +850,10 @@ describe Api::V1::BuildListsController do
|
||||||
# Groups:
|
# Groups:
|
||||||
@owner_group = FactoryGirl.create(:group, owner: @owner_user)
|
@owner_group = FactoryGirl.create(:group, owner: @owner_user)
|
||||||
@member_group = FactoryGirl.create(:group)
|
@member_group = FactoryGirl.create(:group)
|
||||||
@member_group.actors.create role: 'reader', actor_id: @member_user.id, actor_type: 'User'
|
create_actor_relation(@member_group, @member_user, 'reader')
|
||||||
@group = FactoryGirl.create(:group)
|
@group = FactoryGirl.create(:group)
|
||||||
@group.actors.create role: 'reader', actor_id: @user.id, actor_type: 'User'
|
create_actor_relation(@group, @user, 'reader')
|
||||||
|
create_relation(@project, @member_group, 'reader')
|
||||||
#@project = FactoryGirl.create(:project, owner: @owner_group, repositories: @platform.repositories)
|
|
||||||
|
|
||||||
#@project.owner = @owner_group
|
|
||||||
#@project.save
|
|
||||||
@project.relations.create role: 'reader', actor_id: @member_group.id, actor_type: 'Group'
|
|
||||||
#@build_list.save_to_platform.relations.create(role: 'reader', actor: @member_group) # Why it's really need it??
|
|
||||||
#@build_list.save_to_platform.relations.create(role: 'admin', actor: @owner_group) # Why it's really need it??
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'for open project' do
|
context 'for open project' do
|
||||||
|
|
|
@ -11,7 +11,7 @@ describe Api::V1::IssuesController do
|
||||||
|
|
||||||
@membered_issue = FactoryGirl.create(:issue)
|
@membered_issue = FactoryGirl.create(:issue)
|
||||||
@membered_project = @membered_issue.project
|
@membered_project = @membered_issue.project
|
||||||
@membered_project.relations.create(role: 'reader', actor: @issue.user)
|
create_relation(@membered_project, @issue.user, 'reader')
|
||||||
|
|
||||||
@open_issue = FactoryGirl.create(:issue)
|
@open_issue = FactoryGirl.create(:issue)
|
||||||
@open_project = @open_issue.project
|
@open_project = @open_issue.project
|
||||||
|
|
|
@ -365,7 +365,7 @@ describe Api::V1::PlatformsController do
|
||||||
before do
|
before do
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
@platform.owner = @user; @platform.save
|
@platform.owner = @user; @platform.save
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'api platform user with reader rights'
|
it_should_behave_like 'api platform user with reader rights'
|
||||||
|
|
|
@ -57,7 +57,7 @@ end
|
||||||
|
|
||||||
shared_examples_for 'api user with admin rights' do
|
shared_examples_for 'api user with admin rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@product_build_list.product.platform.relations.create!(actor_type: 'User', actor_id: @another_user.id, role: 'admin')
|
create_relation(@product_build_list.product.platform, @another_user, 'admin')
|
||||||
http_login(@another_user)
|
http_login(@another_user)
|
||||||
commit_hash = @product_build_list.project.repo.commits.first.id
|
commit_hash = @product_build_list.project.repo.commits.first.id
|
||||||
params = {product_id: @product_build_list.product_id, arch_id: Arch.last.id,
|
params = {product_id: @product_build_list.product_id, arch_id: Arch.last.id,
|
||||||
|
|
|
@ -57,7 +57,7 @@ end
|
||||||
|
|
||||||
shared_examples_for 'api user with admin rights' do
|
shared_examples_for 'api user with admin rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@product.platform.relations.create!(actor_type: 'User', actor_id: @another_user.id, role: 'admin')
|
create_relation(@product.platform, @another_user, 'admin')
|
||||||
http_login(@another_user)
|
http_login(@another_user)
|
||||||
params = {platform_id: @product.platform.id, project_id: @product.project.id}
|
params = {platform_id: @product.platform.id, project_id: @product.project.id}
|
||||||
@create_params = {product:{name: 'pro', time_living: 150}.merge(params)}
|
@create_params = {product:{name: 'pro', time_living: 150}.merge(params)}
|
||||||
|
|
|
@ -326,13 +326,13 @@ describe Api::V1::ProjectsController do
|
||||||
|
|
||||||
it 'writer group should be able to create project for their group' do
|
it 'writer group should be able to create project for their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_actor_relation(group, @muser, 'writer')
|
||||||
lambda { post :create, params.deep_merge({project: {owner_type: 'Group', owner_id: group.id}})}.should change{ Project.count }.by(1)
|
lambda { post :create, params.deep_merge({project: {owner_type: 'Group', owner_id: group.id}})}.should change{ Project.count }.by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'reader group should not be able to create project for their group' do
|
it 'reader group should not be able to create project for their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(@group, @user, 'reader')
|
||||||
lambda { post :create, params.deep_merge({project: {owner_type: 'Group', owner_id: group.id}})}.should change{ Project.count }.by(0)
|
lambda { post :create, params.deep_merge({project: {owner_type: 'Group', owner_id: group.id}})}.should change{ Project.count }.by(0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -347,13 +347,13 @@ describe Api::V1::ProjectsController do
|
||||||
context 'group writer' do
|
context 'group writer' do
|
||||||
it 'should be able to fork project to their group' do
|
it 'should be able to fork project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_actor_relation(group, @user, 'writer')
|
||||||
lambda {post :fork, id: @project.id, group_id: group.id}.should change{ Project.count }.by(1)
|
lambda {post :fork, id: @project.id, group_id: group.id}.should change{ Project.count }.by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should be able to fork project with different name to their group' do
|
it 'should be able to fork project with different name to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_actor_relation(group, @user, 'writer')
|
||||||
new_name = @project.name + '_forked'
|
new_name = @project.name + '_forked'
|
||||||
lambda { post :fork, id: @project.id, group_id: group.id, fork_name: new_name }.should
|
lambda { post :fork, id: @project.id, group_id: group.id, fork_name: new_name }.should
|
||||||
change { Project.where(name: new_name).count }.by(1)
|
change { Project.where(name: new_name).count }.by(1)
|
||||||
|
@ -363,14 +363,14 @@ describe Api::V1::ProjectsController do
|
||||||
context 'group reader' do
|
context 'group reader' do
|
||||||
it 'should not be able to fork project to their group' do
|
it 'should not be able to fork project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(group, @user, 'reader')
|
||||||
lambda {post :fork, id: @project.id, group_id: group.id}.should change{ Project.count }.by(0)
|
lambda {post :fork, id: @project.id, group_id: group.id}.should change{ Project.count }.by(0)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not be able to fork project with different name to their group' do
|
it 'should not be able to fork project with different name to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
new_name = @project.name + '_forked'
|
new_name = @project.name + '_forked'
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(group, @user, 'reader')
|
||||||
lambda { post :fork, id: @project.id, group_id: group.id, fork_name: new_name }.should
|
lambda { post :fork, id: @project.id, group_id: group.id, fork_name: new_name }.should
|
||||||
change{ Project.where(name: new_name.count) }.by(0)
|
change{ Project.where(name: new_name.count) }.by(0)
|
||||||
end
|
end
|
||||||
|
@ -410,7 +410,7 @@ describe Api::V1::ProjectsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
|
@ -425,7 +425,7 @@ describe Api::V1::ProjectsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
|
@ -459,9 +459,7 @@ describe Api::V1::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'reader user' do
|
context 'reader user' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @group_user, 'reader') }
|
||||||
@group.actors.create(actor_id: @group_user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with reader rights for hidden project'
|
it_should_behave_like 'api projects user with reader rights for hidden project'
|
||||||
|
@ -472,9 +470,7 @@ describe Api::V1::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'admin user' do
|
context 'admin user' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @group_user, 'admin') }
|
||||||
@group.actors.create(actor_id: @group_user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with reader rights for hidden project'
|
it_should_behave_like 'api projects user with reader rights for hidden project'
|
||||||
|
@ -488,13 +484,11 @@ describe Api::V1::ProjectsController do
|
||||||
context 'member of the project' do
|
context 'member of the project' do
|
||||||
context 'with admin rights' do
|
context 'with admin rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: 'admin'
|
create_relation(@project, @group, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'reader user' do
|
context 'reader user' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @group_user, 'reader') }
|
||||||
@group.actors.create(actor_id: @group_user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with reader rights for hidden project'
|
it_should_behave_like 'api projects user with reader rights for hidden project'
|
||||||
|
@ -505,9 +499,7 @@ describe Api::V1::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'admin user' do
|
context 'admin user' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @group_user, 'admin') }
|
||||||
@group.actors.create(actor_id: @group_user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with reader rights for hidden project'
|
it_should_behave_like 'api projects user with reader rights for hidden project'
|
||||||
|
@ -519,14 +511,10 @@ describe Api::V1::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with reader rights' do
|
context 'with reader rights' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @group, 'reader') }
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: 'reader'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'reader user' do
|
context 'reader user' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @group_user, 'reader') }
|
||||||
@group.actors.create(actor_id: @group_user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with reader rights for hidden project'
|
it_should_behave_like 'api projects user with reader rights for hidden project'
|
||||||
|
@ -536,9 +524,8 @@ describe Api::V1::ProjectsController do
|
||||||
it_should_behave_like 'api projects user without owner rights'
|
it_should_behave_like 'api projects user without owner rights'
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @group_user, 'admin') }
|
||||||
@project.relations.create actor_id: @group_user.id, actor_type: @group_user.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with fork rights'
|
it_should_behave_like 'api projects user with fork rights'
|
||||||
it_should_behave_like 'api projects user with fork rights for hidden project'
|
it_should_behave_like 'api projects user with fork rights for hidden project'
|
||||||
|
@ -548,9 +535,7 @@ describe Api::V1::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'admin user' do
|
context 'admin user' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @group_user, 'admin') }
|
||||||
@group.actors.create(actor_id: @group_user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'api projects user with reader rights'
|
it_should_behave_like 'api projects user with reader rights'
|
||||||
it_should_behave_like 'api projects user with reader rights for hidden project'
|
it_should_behave_like 'api projects user with reader rights for hidden project'
|
||||||
|
|
|
@ -29,7 +29,7 @@ describe Api::V1::PullRequestsController do
|
||||||
|
|
||||||
@membered_project = FactoryGirl.create(:project_with_commit)
|
@membered_project = FactoryGirl.create(:project_with_commit)
|
||||||
@membered_pull = create_pull 'master', 'non_conflicts', @membered_project.owner, @membered_project
|
@membered_pull = create_pull 'master', 'non_conflicts', @membered_project.owner, @membered_project
|
||||||
@membered_project.relations.create(role: 'reader', actor: @pull.user)
|
create_relation(@membered_project, @pull.user, 'reader')
|
||||||
|
|
||||||
@create_params = {pull_request: {title: 'title', body: 'body',
|
@create_params = {pull_request: {title: 'title', body: 'body',
|
||||||
from_ref: 'conflicts', to_ref: 'master'},
|
from_ref: 'conflicts', to_ref: 'master'},
|
||||||
|
@ -276,11 +276,11 @@ describe Api::V1::PullRequestsController do
|
||||||
context 'send email messages' do
|
context 'send email messages' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project_reader = FactoryGirl.create :user
|
@project_reader = FactoryGirl.create :user
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @project_reader.id, role: 'reader')
|
create_relation(@project, @project_reader, 'reader')
|
||||||
@project_admin = FactoryGirl.create :user
|
@project_admin = FactoryGirl.create :user
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @project_admin.id, role: 'admin')
|
create_relation(@project, @project_admin, 'admin')
|
||||||
@project_writer = FactoryGirl.create :user
|
@project_writer = FactoryGirl.create :user
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @project_writer.id, role: 'writer')
|
create_relation(@project, @project_writer, 'writer')
|
||||||
|
|
||||||
http_login(@project_writer)
|
http_login(@project_writer)
|
||||||
ActionMailer::Base.deliveries = []
|
ActionMailer::Base.deliveries = []
|
||||||
|
|
|
@ -351,7 +351,7 @@ describe Api::V1::RepositoriesController do
|
||||||
[@repository, @personal_repository].each do |repository|
|
[@repository, @personal_repository].each do |repository|
|
||||||
platform = repository.platform
|
platform = repository.platform
|
||||||
platform.owner = @user; platform.save
|
platform.owner = @user; platform.save
|
||||||
repository.platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(repository.platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ describe Groups::MembersController do
|
||||||
context 'for admin user' do
|
context 'for admin user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@admin_user = FactoryGirl.create(:user)
|
@admin_user = FactoryGirl.create(:user)
|
||||||
@group.actors.create(actor_id: @admin_user.id, actor_type: 'User', role: 'admin')
|
create_actor_relation(@group, @admin_user, 'admin')
|
||||||
set_session_for @admin_user
|
set_session_for @admin_user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ describe Groups::MembersController do
|
||||||
context 'for writer user' do
|
context 'for writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@writer_user = FactoryGirl.create(:user)
|
@writer_user = FactoryGirl.create(:user)
|
||||||
@group.actors.create(actor_id: @writer_user.id, actor_type: 'User', role: 'writer')
|
create_actor_relation(@group, @writer_user, 'writer')
|
||||||
set_session_for @writer_user
|
set_session_for @writer_user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ describe Groups::ProfileController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_actor_relation(@group, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'group user with project show rights'
|
it_should_behave_like 'group user with project show rights'
|
||||||
|
@ -144,7 +144,7 @@ describe Groups::ProfileController do
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@group.owner = @user
|
@group.owner = @user
|
||||||
@group.save
|
@group.save
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_actor_relation(@group, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'group user with project show rights'
|
it_should_behave_like 'group user with project show rights'
|
||||||
|
@ -156,7 +156,7 @@ describe Groups::ProfileController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(@group, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should remove user from groups" do
|
it "should remove user from groups" do
|
||||||
|
|
|
@ -67,7 +67,7 @@ describe Platforms::ContentsController do
|
||||||
before do
|
before do
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
@platform.owner = @user; @platform.save
|
@platform.owner = @user; @platform.save
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'content platform user with show rights'
|
it_should_behave_like 'content platform user with show rights'
|
||||||
|
|
|
@ -139,7 +139,7 @@ describe Platforms::KeyPairsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'key_pair platform owner'
|
it_should_behave_like 'key_pair platform owner'
|
||||||
|
@ -149,7 +149,7 @@ describe Platforms::KeyPairsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@platform, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'key_pair platform reader'
|
it_should_behave_like 'key_pair platform reader'
|
||||||
|
|
|
@ -57,12 +57,10 @@ describe Platforms::MaintainersController do
|
||||||
|
|
||||||
context 'for platform member' do
|
context 'for platform member' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'guest user'
|
it_should_behave_like 'guest user'
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -213,7 +213,7 @@ describe Platforms::MassBuildsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'mass_build platform owner'
|
it_should_behave_like 'mass_build platform owner'
|
||||||
|
@ -224,7 +224,7 @@ describe Platforms::MassBuildsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@platform, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'mass_build platform reader'
|
it_should_behave_like 'mass_build platform reader'
|
||||||
|
|
|
@ -353,7 +353,7 @@ describe Platforms::PlatformsController do
|
||||||
before do
|
before do
|
||||||
http_login(@user)
|
http_login(@user)
|
||||||
@platform.owner = @user; @platform.save
|
@platform.owner = @user; @platform.save
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'platform user with reader rights'
|
it_should_behave_like 'platform user with reader rights'
|
||||||
|
|
|
@ -145,7 +145,7 @@ describe Platforms::ProductBuildListsController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@product.platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@product.platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'product build list admin'
|
it_should_behave_like 'product build list admin'
|
||||||
|
|
|
@ -93,7 +93,7 @@ describe Platforms::ProductsController do
|
||||||
|
|
||||||
context 'for admin relation user' do
|
context 'for admin relation user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'admin user'
|
it_should_behave_like 'admin user'
|
||||||
|
|
|
@ -96,7 +96,7 @@ shared_examples_for 'registered user or guest' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not be able to remove member from repository' do
|
it 'should not be able to remove member from repository' do
|
||||||
@repository.relations.create(role: 'admin', actor: @another_user)
|
create_relation(@repository, @another_user, 'admin')
|
||||||
delete :remove_member, id: @repository.id, platform_id: @platform.id, member_id: @another_user.id
|
delete :remove_member, id: @repository.id, platform_id: @platform.id, member_id: @another_user.id
|
||||||
response.should redirect_to(redirect_path)
|
response.should redirect_to(redirect_path)
|
||||||
@repository.members.should include(@another_user)
|
@repository.members.should include(@another_user)
|
||||||
|
@ -104,8 +104,8 @@ shared_examples_for 'registered user or guest' do
|
||||||
|
|
||||||
it 'should not be able to remove members from repository' do
|
it 'should not be able to remove members from repository' do
|
||||||
another_user2 = FactoryGirl.create(:user)
|
another_user2 = FactoryGirl.create(:user)
|
||||||
@repository.relations.create(role: 'admin', actor: @another_user)
|
create_relation(@repository, @another_user, 'admin')
|
||||||
@repository.relations.create(role: 'admin', actor: another_user2)
|
create_relation(@repository, @another_user2, 'admin')
|
||||||
post :remove_members, id: @repository.id, platform_id: @platform.id,
|
post :remove_members, id: @repository.id, platform_id: @platform.id,
|
||||||
user_remove: {@another_user.id => [1], another_user2.id => [1]}
|
user_remove: {@another_user.id => [1], another_user2.id => [1]}
|
||||||
response.should redirect_to(redirect_path)
|
response.should redirect_to(redirect_path)
|
||||||
|
@ -195,7 +195,7 @@ shared_examples_for 'platform admin user' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should be able to remove member from repository' do
|
it 'should be able to remove member from repository' do
|
||||||
@repository.relations.create(role: 'admin', actor: @another_user)
|
create_relation(@repository, @another_user, 'admin')
|
||||||
delete :remove_member, id: @repository.id, platform_id: @platform.id, member_id: @another_user.id
|
delete :remove_member, id: @repository.id, platform_id: @platform.id, member_id: @another_user.id
|
||||||
response.should redirect_to(edit_platform_repository_path(@repository.platform, @repository))
|
response.should redirect_to(edit_platform_repository_path(@repository.platform, @repository))
|
||||||
@repository.members.should_not include(@another_user)
|
@repository.members.should_not include(@another_user)
|
||||||
|
@ -203,8 +203,8 @@ shared_examples_for 'platform admin user' do
|
||||||
|
|
||||||
it 'should be able to remove members from repository' do
|
it 'should be able to remove members from repository' do
|
||||||
another_user2 = FactoryGirl.create(:user)
|
another_user2 = FactoryGirl.create(:user)
|
||||||
@repository.relations.create(role: 'admin', actor: @another_user)
|
create_relation(@repository, @another_user, 'admin')
|
||||||
@repository.relations.create(role: 'admin', actor: another_user2)
|
create_relation(@repository, @another_user2, 'admin')
|
||||||
post :remove_members, id: @repository.id, platform_id: @platform.id,
|
post :remove_members, id: @repository.id, platform_id: @platform.id,
|
||||||
user_remove: {@another_user.id => [1], another_user2.id => [1]}
|
user_remove: {@another_user.id => [1], another_user2.id => [1]}
|
||||||
response.should redirect_to(edit_platform_repository_path(@repository.platform, @repository))
|
response.should redirect_to(edit_platform_repository_path(@repository.platform, @repository))
|
||||||
|
@ -309,7 +309,7 @@ describe Platforms::RepositoriesController do
|
||||||
context 'for platform member user' do
|
context 'for platform member user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
[@repository, @personal_repository].each do |repo|
|
[@repository, @personal_repository].each do |repo|
|
||||||
repo.platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(repo.platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ describe Platforms::TokensController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@platform, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'token of platform for owner'
|
it_should_behave_like 'token of platform for owner'
|
||||||
|
@ -105,7 +105,7 @@ describe Platforms::TokensController do
|
||||||
before do
|
before do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@platform.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@platform, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'token of platform for simple user or guest' do
|
it_should_behave_like 'token of platform for simple user or guest' do
|
||||||
|
|
|
@ -116,9 +116,8 @@ describe Projects::BuildListsController do
|
||||||
@project = @build_list.project
|
@project = @build_list.project
|
||||||
@owner_user = @project.owner
|
@owner_user = @project.owner
|
||||||
@member_user = FactoryGirl.create(:user)
|
@member_user = FactoryGirl.create(:user)
|
||||||
rel = @project.relations.build(role: 'reader')
|
create_relation(@project, @member_user, 'reader')
|
||||||
rel.actor = @member_user
|
|
||||||
rel.save
|
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@show_params = {owner_name: @project.owner.uname, project_name: @project.name, id: @build_list.id}
|
@show_params = {owner_name: @project.owner.uname, project_name: @project.name, id: @build_list.id}
|
||||||
|
@ -205,7 +204,7 @@ describe Projects::BuildListsController do
|
||||||
@writer_user = FactoryGirl.create(:user)
|
@writer_user = FactoryGirl.create(:user)
|
||||||
@build_list.update_column(:status, BuildList::SUCCESS)
|
@build_list.update_column(:status, BuildList::SUCCESS)
|
||||||
@build_list.save_to_repository.update_column(:publish_without_qa, true)
|
@build_list.save_to_repository.update_column(:publish_without_qa, true)
|
||||||
@build_list.project.relations.create!(actor_type: 'User', actor_id: @writer_user.id, role: 'writer')
|
create_relation(@build_list.project, @writer_user, 'writer')
|
||||||
set_session_for(@writer_user)
|
set_session_for(@writer_user)
|
||||||
do_reject_publish
|
do_reject_publish
|
||||||
end
|
end
|
||||||
|
@ -232,7 +231,7 @@ describe Projects::BuildListsController do
|
||||||
|
|
||||||
@build_list4 = FactoryGirl.create(:build_list)
|
@build_list4 = FactoryGirl.create(:build_list)
|
||||||
@build_list4.project.update_column(:visibility, 'hidden')
|
@build_list4.project.update_column(:visibility, 'hidden')
|
||||||
@build_list4.project.relations.create! role: 'reader', actor_id: @user.id, actor_type: 'User'
|
create_relation(@build_list4.project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should be able to perform index action' do
|
it 'should be able to perform index action' do
|
||||||
|
@ -314,8 +313,8 @@ describe Projects::BuildListsController do
|
||||||
|
|
||||||
@member_group = FactoryGirl.create(:group)
|
@member_group = FactoryGirl.create(:group)
|
||||||
@member_user = FactoryGirl.create(:user)
|
@member_user = FactoryGirl.create(:user)
|
||||||
@member_group.actors.create role: 'reader', actor_id: @member_user.id, actor_type: 'User'
|
create_actor_relation(@member_group, @member_user, 'reader')
|
||||||
@project.relations.create role: 'reader', actor_id: @member_group.id, actor_type: 'Group'
|
create_relation(@project, @member_group, 'reader')
|
||||||
|
|
||||||
@show_params = {owner_name: @project.owner.uname, project_name: @project.name, id: @build_list.id}
|
@show_params = {owner_name: @project.owner.uname, project_name: @project.name, id: @build_list.id}
|
||||||
end
|
end
|
||||||
|
@ -332,7 +331,7 @@ describe Projects::BuildListsController do
|
||||||
|
|
||||||
@build_list4 = FactoryGirl.create(:build_list)
|
@build_list4 = FactoryGirl.create(:build_list)
|
||||||
@build_list4.project.update_column(:visibility, 'hidden')
|
@build_list4.project.update_column(:visibility, 'hidden')
|
||||||
@build_list4.project.relations.create! role: 'reader', actor_id: @user.id, actor_type: 'User'
|
create_relation(@build_list4.project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should be able to perform index action' do
|
it 'should be able to perform index action' do
|
||||||
|
|
|
@ -104,7 +104,7 @@ describe Projects::CollaboratorsController do
|
||||||
|
|
||||||
context 'for admin user' do
|
context 'for admin user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'project admin user'
|
it_should_behave_like 'project admin user'
|
||||||
|
@ -121,7 +121,7 @@ describe Projects::CollaboratorsController do
|
||||||
|
|
||||||
context 'for reader user' do
|
context 'for reader user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with no rights for this project'
|
it_should_behave_like 'user with no rights for this project'
|
||||||
|
@ -129,7 +129,7 @@ describe Projects::CollaboratorsController do
|
||||||
|
|
||||||
context 'for writer user' do
|
context 'for writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with no rights for this project'
|
it_should_behave_like 'user with no rights for this project'
|
||||||
|
|
|
@ -20,7 +20,7 @@ describe Projects::CommentsController do
|
||||||
|
|
||||||
context 'for project admin user' do
|
context 'for project admin user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability'
|
it_should_behave_like 'user with create comment ability'
|
||||||
|
@ -43,7 +43,7 @@ describe Projects::CommentsController do
|
||||||
|
|
||||||
context 'for project reader user' do
|
context 'for project reader user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability'
|
it_should_behave_like 'user with create comment ability'
|
||||||
|
@ -54,7 +54,7 @@ describe Projects::CommentsController do
|
||||||
|
|
||||||
context 'for project writer user' do
|
context 'for project writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability'
|
it_should_behave_like 'user with create comment ability'
|
||||||
|
|
|
@ -38,7 +38,7 @@ describe Projects::CommentsController do
|
||||||
|
|
||||||
context 'for project admin user' do
|
context 'for project admin user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability'
|
it_should_behave_like 'user with create comment ability'
|
||||||
|
@ -60,7 +60,7 @@ describe Projects::CommentsController do
|
||||||
|
|
||||||
context 'for project reader user' do
|
context 'for project reader user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability'
|
it_should_behave_like 'user with create comment ability'
|
||||||
|
@ -71,7 +71,7 @@ describe Projects::CommentsController do
|
||||||
|
|
||||||
context 'for project writer user' do
|
context 'for project writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability'
|
it_should_behave_like 'user with create comment ability'
|
||||||
|
|
|
@ -100,7 +100,7 @@ describe Projects::Git::TreesController do
|
||||||
context 'for writer user' do
|
context 'for writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
user = FactoryGirl.create(:user)
|
user = FactoryGirl.create(:user)
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
set_session_for user
|
set_session_for user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -94,14 +94,14 @@ describe Projects::HooksController do
|
||||||
|
|
||||||
context 'for reader user' do
|
context 'for reader user' do
|
||||||
before do
|
before do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
it_should_behave_like 'hooks user without project admin rights'
|
it_should_behave_like 'hooks user without project admin rights'
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'for writer user' do
|
context 'for writer user' do
|
||||||
before do
|
before do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
it_should_behave_like 'hooks user without project admin rights'
|
it_should_behave_like 'hooks user without project admin rights'
|
||||||
end
|
end
|
||||||
|
@ -120,82 +120,59 @@ describe Projects::HooksController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with reader role' do
|
context 'group member user with reader role' do
|
||||||
before do
|
before do { create_actor_relation(@group, @auser, 'reader') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'hooks user without project admin rights'
|
it_should_behave_like 'hooks user without project admin rights'
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before do
|
before { create_relation(@project, @user, 'admin') }
|
||||||
@project.relations.create actor_id: @user.id, actor_type: @user.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'hooks user with project admin rights'
|
it_should_behave_like 'hooks user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with admin role' do
|
context 'group member user with admin role' do
|
||||||
before do
|
before do { create_actor_relation(@group, @user, 'admin') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'hooks user with project admin rights'
|
it_should_behave_like 'hooks user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group is member of the project' do
|
context 'group is member of the project' do
|
||||||
context 'with admin rights' do
|
context 'with admin rights' do
|
||||||
before do
|
before { create_relation(@project, @group, 'admin') }
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'group member user with reader role' do
|
context 'group member user with reader role' do
|
||||||
before do
|
before { create_actor_relation(@group, @user, 'reader') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'hooks user with project admin rights'
|
it_should_behave_like 'hooks user with project admin rights'
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before do
|
before { create_relation(@project, @user, 'reader') }
|
||||||
@project.relations.create actor_id: @user.id, actor_type: @user.class.to_s, role: 'reader'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'hooks user with project admin rights'
|
it_should_behave_like 'hooks user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with admin role' do
|
context 'group member user with admin role' do
|
||||||
before do
|
before { create_actor_relation(@group, @user, 'admin') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'hooks user with project admin rights'
|
it_should_behave_like 'hooks user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with reader rights' do
|
context 'with reader rights' do
|
||||||
before do
|
before { create_relation(@project, @group, 'reader') }
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: 'reader'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'group member user with reader role' do
|
context 'group member user with reader role' do
|
||||||
before do
|
before { create_actor_relation(@group, @user, 'reader') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
it_should_behave_like 'hooks user without project admin rights'
|
it_should_behave_like 'hooks user without project admin rights'
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before do
|
before { create_relation(@project, @user, 'admin') }
|
||||||
@project.relations.create actor_id: @user.id, actor_type: @user.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'hooks user with project admin rights'
|
it_should_behave_like 'hooks user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with admin role' do
|
context 'group member user with admin role' do
|
||||||
before do
|
before { create_actor_relation(@group, @user, 'admin') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
it_should_behave_like 'hooks user without project admin rights'
|
it_should_behave_like 'hooks user without project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -162,7 +162,7 @@ describe Projects::IssuesController do
|
||||||
|
|
||||||
context 'for project admin user' do
|
context 'for project admin user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'issue user with project guest rights'
|
it_should_behave_like 'issue user with project guest rights'
|
||||||
|
@ -189,7 +189,7 @@ describe Projects::IssuesController do
|
||||||
|
|
||||||
context 'for project reader user' do
|
context 'for project reader user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'issue user with project guest rights'
|
it_should_behave_like 'issue user with project guest rights'
|
||||||
|
@ -232,7 +232,7 @@ describe Projects::IssuesController do
|
||||||
|
|
||||||
context 'for project writer user' do
|
context 'for project writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'issue user with project guest rights'
|
it_should_behave_like 'issue user with project guest rights'
|
||||||
|
|
|
@ -9,7 +9,7 @@ shared_examples_for 'projects user with reader rights' do
|
||||||
|
|
||||||
it 'should be able to fork project to their group' do
|
it 'should be able to fork project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_actor_relation(group, @user, 'admin')
|
||||||
lambda {post :fork, owner_name: @project.owner.uname, project_name: @project.name,
|
lambda {post :fork, owner_name: @project.owner.uname, project_name: @project.name,
|
||||||
group: group.id}.should change{ Project.count }.by(1)
|
group: group.id}.should change{ Project.count }.by(1)
|
||||||
end
|
end
|
||||||
|
@ -71,27 +71,27 @@ shared_examples_for 'projects user without project admin rights' do
|
||||||
|
|
||||||
it 'writer group should be able to fork project to their group' do
|
it 'writer group should be able to fork project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_actor_relation(group, @user, 'writer')
|
||||||
lambda {post :fork, owner_name: @project.owner.uname, project_name: @project.name,
|
lambda {post :fork, owner_name: @project.owner.uname, project_name: @project.name,
|
||||||
group: group.id}.should change{ Project.count }.by(1)
|
group: group.id}.should change{ Project.count }.by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'reader group should not be able to fork project to their group' do
|
it 'reader group should not be able to fork project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(group, @user, 'reader')
|
||||||
lambda {post :fork, owner_name: @project.owner.uname, project_name: @project.name,
|
lambda {post :fork, owner_name: @project.owner.uname, project_name: @project.name,
|
||||||
group: group.id}.should change{ Project.count }.by(0)
|
group: group.id}.should change{ Project.count }.by(0)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'writer group should be able to create project to their group' do
|
it 'writer group should be able to create project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_actor_relation(group, @user, 'wrtier')
|
||||||
lambda {post :create, @create_params.merge(who_owns: 'group', owner_id: group.id)}.should change{ Project.count }.by(1)
|
lambda {post :create, @create_params.merge(who_owns: 'group', owner_id: group.id)}.should change{ Project.count }.by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'reader group should not be able to create project to their group' do
|
it 'reader group should not be able to create project to their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(group, @user, 'reader')
|
||||||
lambda {post :create, @create_params.merge(who_owns: 'group', owner_id: group.id)}.should change{ Project.count }.by(0)
|
lambda {post :create, @create_params.merge(who_owns: 'group', owner_id: group.id)}.should change{ Project.count }.by(0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -168,7 +168,7 @@ describe Projects::ProjectsController do
|
||||||
|
|
||||||
it 'should be able to create project for their group' do
|
it 'should be able to create project for their group' do
|
||||||
group = FactoryGirl.create(:group)
|
group = FactoryGirl.create(:group)
|
||||||
group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_actor_relation(group, @user, 'admin')
|
||||||
lambda { post :create, @create_params.merge({who_owns: 'group', owner_id: group.id})}.should change{ Project.count }.by(1)
|
lambda { post :create, @create_params.merge({who_owns: 'group', owner_id: group.id})}.should change{ Project.count }.by(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ describe Projects::ProjectsController do
|
||||||
|
|
||||||
context 'for reader user' do
|
context 'for reader user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
|
@ -224,7 +224,7 @@ describe Projects::ProjectsController do
|
||||||
|
|
||||||
context 'for writer user' do
|
context 'for writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
|
@ -257,9 +257,7 @@ describe Projects::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with reader role' do
|
context 'group member user with reader role' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, 'reader') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
it_should_behave_like 'projects user without project admin rights'
|
it_should_behave_like 'projects user without project admin rights'
|
||||||
|
@ -269,17 +267,13 @@ describe Projects::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @user, 'admin') }
|
||||||
@project.relations.create actor_id: @user.id, actor_type: @user.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'projects user with project admin rights'
|
it_should_behave_like 'projects user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with admin role' do
|
context 'group member user with admin role' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, 'admin') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'projects user with project admin rights'
|
it_should_behave_like 'projects user with project admin rights'
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
|
@ -288,30 +282,22 @@ describe Projects::ProjectsController do
|
||||||
|
|
||||||
context 'group is member of the project' do
|
context 'group is member of the project' do
|
||||||
context 'with admin rights' do
|
context 'with admin rights' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @group, 'admin') }
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'group member user with reader role' do
|
context 'group member user with reader role' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, 'reader') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
it_should_behave_like 'projects user with project admin rights'
|
it_should_behave_like 'projects user with project admin rights'
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @user, 'reader') }
|
||||||
@project.relations.create actor_id: @user.id, actor_type: @user.class.to_s, role: 'reader'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'projects user with project admin rights'
|
it_should_behave_like 'projects user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with admin role' do
|
context 'group member user with admin role' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, 'admin') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'projects user with project admin rights'
|
it_should_behave_like 'projects user with project admin rights'
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
|
@ -319,30 +305,22 @@ describe Projects::ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with reader rights' do
|
context 'with reader rights' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @group, 'reader') }
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: 'reader'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'group member user with reader role' do
|
context 'group member user with reader role' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, 'reader') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
it_should_behave_like 'projects user without project admin rights'
|
it_should_behave_like 'projects user without project admin rights'
|
||||||
|
|
||||||
context 'user should has best role' do
|
context 'user should has best role' do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @user, 'admin') }
|
||||||
@project.relations.create actor_id: @user.id, actor_type: @user.class.to_s, role: 'admin'
|
|
||||||
end
|
|
||||||
it_should_behave_like 'projects user with project admin rights'
|
it_should_behave_like 'projects user with project admin rights'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'group member user with admin role' do
|
context 'group member user with admin role' do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, 'admin') }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
|
||||||
end
|
|
||||||
|
|
||||||
it_should_behave_like 'projects user with reader rights'
|
it_should_behave_like 'projects user with reader rights'
|
||||||
it_should_behave_like 'projects user without project admin rights'
|
it_should_behave_like 'projects user without project admin rights'
|
||||||
|
|
|
@ -191,7 +191,7 @@ describe Projects::PullRequestsController do
|
||||||
|
|
||||||
context 'for project admin user' do
|
context 'for project admin user' do
|
||||||
before do
|
before do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'pull request user with project guest rights'
|
it_should_behave_like 'pull request user with project guest rights'
|
||||||
|
@ -214,7 +214,7 @@ describe Projects::PullRequestsController do
|
||||||
|
|
||||||
context 'for project reader user' do
|
context 'for project reader user' do
|
||||||
before do
|
before do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'pull request user with project guest rights'
|
it_should_behave_like 'pull request user with project guest rights'
|
||||||
|
@ -235,7 +235,7 @@ describe Projects::PullRequestsController do
|
||||||
|
|
||||||
context 'for project writer user' do
|
context 'for project writer user' do
|
||||||
before do
|
before do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'pull request user with project guest rights'
|
it_should_behave_like 'pull request user with project guest rights'
|
||||||
|
@ -300,11 +300,11 @@ describe Projects::PullRequestsController do
|
||||||
context 'send email messages' do
|
context 'send email messages' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project_reader = FactoryGirl.create :user
|
@project_reader = FactoryGirl.create :user
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @project_reader.id, role: 'reader')
|
create_relation(@project, @project_reader, 'reader')
|
||||||
@project_admin = FactoryGirl.create :user
|
@project_admin = FactoryGirl.create :user
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @project_admin.id, role: 'admin')
|
create_relation(@project, @project_admin, 'admin')
|
||||||
@project_writer = FactoryGirl.create :user
|
@project_writer = FactoryGirl.create :user
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @project_writer.id, role: 'writer')
|
create_relation(@project, @project_writer, 'writer')
|
||||||
|
|
||||||
set_session_for(@project_writer)
|
set_session_for(@project_writer)
|
||||||
ActionMailer::Base.deliveries = []
|
ActionMailer::Base.deliveries = []
|
||||||
|
|
|
@ -65,7 +65,7 @@ describe Projects::SubscribesController do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:admin)
|
@user = FactoryGirl.create(:admin)
|
||||||
set_session_for(@user)
|
set_session_for(@user)
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
@destroy_params = @destroy_params.merge({id: @user.id})
|
@destroy_params = @destroy_params.merge({id: @user.id})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the BuildListsHelper. For example:
|
|
||||||
#
|
|
||||||
# describe BuildListsHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# helper.concat_strings("this","that").should == "this that"
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
describe BuildListsHelper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
|
@ -1,15 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the WikiHelper. For example:
|
|
||||||
#
|
|
||||||
# describe WikiHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# helper.concat_strings("this","that").should == "this that"
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
describe WikiHelper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
|
@ -138,7 +138,7 @@ describe CanCan do
|
||||||
|
|
||||||
context 'with read rights' do
|
context 'with read rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should be able to read project' do
|
it 'should be able to read project' do
|
||||||
|
@ -152,7 +152,7 @@ describe CanCan do
|
||||||
|
|
||||||
context 'with writer rights' do
|
context 'with writer rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_id: @user.id, actor_type: 'User', role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
end
|
end
|
||||||
|
|
||||||
[:read, :create, :new].each do |action|
|
[:read, :create, :new].each do |action|
|
||||||
|
@ -171,7 +171,7 @@ describe CanCan do
|
||||||
|
|
||||||
context 'with admin rights' do
|
context 'with admin rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@project.relations.create!(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
[:read, :update].each do |action|
|
[:read, :update].each do |action|
|
||||||
|
@ -227,7 +227,7 @@ describe CanCan do
|
||||||
context 'through group-member' do
|
context 'through group-member' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@group_member = FactoryGirl.create(:group)
|
@group_member = FactoryGirl.create(:group)
|
||||||
@project.relations.create!(actor_id: @group_member.id, actor_type: 'Group', role: 'reader')
|
create_relation(@project, @group_member, 'reader')
|
||||||
@group_member_ability = Ability.new(@group_member.owner)
|
@group_member_ability = Ability.new(@group_member.owner)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ describe CanCan do
|
||||||
|
|
||||||
context 'with read rights' do
|
context 'with read rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@platform.relations.create!(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
create_relation(@platform, @user, 'reader')
|
||||||
@ability = Ability.new(@user)
|
@ability = Ability.new(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -310,7 +310,7 @@ describe CanCan do
|
||||||
|
|
||||||
context 'with read rights' do
|
context 'with read rights' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@repository.platform.relations.create!(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
create_relation(@repository.platform, @user, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be able to read repository" do
|
it "should be able to read repository" do
|
||||||
|
|
|
@ -62,7 +62,7 @@ describe Comment do
|
||||||
set_comments_data_for_commit
|
set_comments_data_for_commit
|
||||||
@admin = FactoryGirl.create(:user)
|
@admin = FactoryGirl.create(:user)
|
||||||
@ability = Ability.new(@admin)
|
@ability = Ability.new(@admin)
|
||||||
@project.relations.create!({actor_type: 'User', actor_id: @admin.id, role: 'admin'}, without_protection: true)
|
create_relation(@project, @admin, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability (for model)'
|
it_should_behave_like 'user with create comment ability (for model)'
|
||||||
|
|
|
@ -40,8 +40,7 @@ describe Comment do
|
||||||
@stranger = FactoryGirl.create(:user)
|
@stranger = FactoryGirl.create(:user)
|
||||||
|
|
||||||
set_commentable_data
|
set_commentable_data
|
||||||
|
create_relation(@project, @user, 'admin')
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability (for model)'
|
it_should_behave_like 'user with create comment ability (for model)'
|
||||||
|
@ -64,7 +63,7 @@ describe Comment do
|
||||||
|
|
||||||
@project.owner = @user
|
@project.owner = @user
|
||||||
@project.save
|
@project.save
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_relation(@project, @user, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'user with create comment ability (for model)'
|
it_should_behave_like 'user with create comment ability (for model)'
|
||||||
|
|
|
@ -33,7 +33,7 @@ describe Group do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
@another_user = FactoryGirl.create(:user)
|
@another_user = FactoryGirl.create(:user)
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_actor_relation(@group, @user, 'admin')
|
||||||
@ability = Ability.new(@user)
|
@ability = Ability.new(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ describe Group do
|
||||||
@group.owner = @user
|
@group.owner = @user
|
||||||
@group.save
|
@group.save
|
||||||
|
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'admin')
|
create_actor_relation(@group, @user, 'admin')
|
||||||
@ability = Ability.new(@user)
|
@ability = Ability.new(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ describe Group do
|
||||||
context 'for group reader and writer user' do
|
context 'for group reader and writer user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @user.id, role: 'reader')
|
create_actor_relation(@group, @user, 'reader')
|
||||||
@ability = Ability.new(@user)
|
@ability = Ability.new(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -66,32 +66,32 @@ describe Issue do
|
||||||
|
|
||||||
@group = FactoryGirl.create(:group)
|
@group = FactoryGirl.create(:group)
|
||||||
@reader = FactoryGirl.create :user
|
@reader = FactoryGirl.create :user
|
||||||
@group.actors.create(actor_type: 'User', actor_id: @reader.id, role: 'reader')
|
create_actor_relation(@group, @reader, 'reader')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should send an e-mail to all members of the admin group' do
|
it 'should send an e-mail to all members of the admin group' do
|
||||||
@project.relations.create!(actor_type: 'Group', actor_id: @group.id, role: 'admin')
|
create_relation(@project, @group, 'admin')
|
||||||
|
|
||||||
create_issue(@stranger)
|
create_issue(@stranger)
|
||||||
ActionMailer::Base.deliveries.count.should == 3 # 1 owner + 2 group member. enough?
|
ActionMailer::Base.deliveries.count.should == 3 # 1 owner + 2 group member. enough?
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should send an e-mail to all members of the admin group except creator' do
|
it 'should send an e-mail to all members of the admin group except creator' do
|
||||||
@project.relations.create!(actor_type: 'Group', actor_id: @group.id, role: 'admin')
|
create_relation(@project, @group, 'admin')
|
||||||
|
|
||||||
create_issue(@group.owner)
|
create_issue(@group.owner)
|
||||||
ActionMailer::Base.deliveries.count.should == 2 # 1 owner + 1 group member. enough?
|
ActionMailer::Base.deliveries.count.should == 2 # 1 owner + 1 group member. enough?
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not send an e-mail to members of the reader group' do
|
it 'should not send an e-mail to members of the reader group' do
|
||||||
@project.relations.create!(actor_type: 'Group', actor_id: @group.id, role: 'reader')
|
create_relation(@project, @group, 'reader')
|
||||||
|
|
||||||
create_issue(@stranger)
|
create_issue(@stranger)
|
||||||
ActionMailer::Base.deliveries.count.should == 1 # 1 project owner
|
ActionMailer::Base.deliveries.count.should == 1 # 1 project owner
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should reset issue assignee after remove him from group' do
|
it 'should reset issue assignee after remove him from group' do
|
||||||
@project.relations.create!(actor_type: 'Group', actor_id: @group.id, role: 'reader')
|
create_relation(@project, @group, 'reader')
|
||||||
create_issue(@group.owner)
|
create_issue(@group.owner)
|
||||||
@issue.update_column :assignee_id, @reader.id
|
@issue.update_column :assignee_id, @reader.id
|
||||||
@group.remove_member @reader
|
@group.remove_member @reader
|
||||||
|
@ -99,8 +99,8 @@ describe Issue do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not reset issue assignee' do
|
it 'should not reset issue assignee' do
|
||||||
@project.relations.create!(actor_type: 'Group', actor_id: @group.id, role: 'reader')
|
create_relation(@project, @group, 'reader')
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @reader.id, role: 'reader')
|
create_relation(@project, @reader, 'reader')
|
||||||
create_issue(@group.owner)
|
create_issue(@group.owner)
|
||||||
@issue.update_column :assignee_id, @reader.id
|
@issue.update_column :assignee_id, @reader.id
|
||||||
@group.remove_member @reader
|
@group.remove_member @reader
|
||||||
|
@ -108,7 +108,7 @@ describe Issue do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should reset issue assignee after remove him from project' do
|
it 'should reset issue assignee after remove him from project' do
|
||||||
@project.relations.create!(actor_type: 'User', actor_id: @reader.id, role: 'reader')
|
create_relation(@project, @reader, 'reader')
|
||||||
create_issue(@reader)
|
create_issue(@reader)
|
||||||
@issue.update_column :assignee_id, @reader.id
|
@issue.update_column :assignee_id, @reader.id
|
||||||
@project.remove_member @reader # via api
|
@project.remove_member @reader # via api
|
||||||
|
@ -140,7 +140,7 @@ describe Issue do
|
||||||
context 'for reader of the group' do
|
context 'for reader of the group' do
|
||||||
it 'should not send an e-mail' do
|
it 'should not send an e-mail' do
|
||||||
reader = FactoryGirl.create :user
|
reader = FactoryGirl.create :user
|
||||||
@group.actors.create(actor_type: 'User', actor_id: reader.id, role: 'reader')
|
create_actor_relation(@group, reader, 'reader')
|
||||||
|
|
||||||
create_issue(@stranger)
|
create_issue(@stranger)
|
||||||
ActionMailer::Base.deliveries.count.should == 1
|
ActionMailer::Base.deliveries.count.should == 1
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe User do
|
describe User do
|
||||||
|
@ -24,15 +23,11 @@ describe User do
|
||||||
|
|
||||||
%w(reader writer admin).each do |group_role|
|
%w(reader writer admin).each do |group_role|
|
||||||
context "for group with #{group_role} role in project" do
|
context "for group with #{group_role} role in project" do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @group, group_role) }
|
||||||
@project.relations.create actor_id: @group.id, actor_type: @group.class.to_s, role: group_role
|
|
||||||
end
|
|
||||||
|
|
||||||
%w(reader writer admin).each do |role|
|
%w(reader writer admin).each do |role|
|
||||||
context "for user with #{role} role in group" do
|
context "for user with #{role} role in group" do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, role) }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: role)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should have #{group_role} role to project" do
|
it "should have #{group_role} role to project" do
|
||||||
@user.best_role(@project).should == group_role
|
@user.best_role(@project).should == group_role
|
||||||
|
@ -48,14 +43,12 @@ describe User do
|
||||||
|
|
||||||
@project.owner = @group
|
@project.owner = @group
|
||||||
@project.save
|
@project.save
|
||||||
@project.relations.create actor_id: @project.owner.id, actor_type: @project.owner.class.to_s, role: 'admin'
|
create_relation(@project, @project.owner, 'admin')
|
||||||
end
|
end
|
||||||
|
|
||||||
%w(reader writer admin).each do |role|
|
%w(reader writer admin).each do |role|
|
||||||
context "for user with #{role} role in group" do
|
context "for user with #{role} role in group" do
|
||||||
before(:each) do
|
before(:each) { create_actor_relation(@group, @user, role) }
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: role)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should have #{role} role to project" do
|
it "should have #{role} role to project" do
|
||||||
@user.best_role(@project).should == role
|
@user.best_role(@project).should == role
|
||||||
|
@ -65,9 +58,7 @@ describe User do
|
||||||
|
|
||||||
%w(reader writer admin).each do |role|
|
%w(reader writer admin).each do |role|
|
||||||
context "for user with #{role} role in project" do
|
context "for user with #{role} role in project" do
|
||||||
before(:each) do
|
before(:each) { create_relation(@project, @user, role) }
|
||||||
@project.relations.create(actor_id: @user.id, actor_type: 'User', role: role)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should have #{role} role to project" do
|
it "should have #{role} role to project" do
|
||||||
@user.best_role(@project).should == role
|
@user.best_role(@project).should == role
|
||||||
|
@ -77,16 +68,16 @@ describe User do
|
||||||
|
|
||||||
context "for user with reader role in group and writer role in project" do
|
context "for user with reader role in group and writer role in project" do
|
||||||
it "should have writer best role to project" do
|
it "should have writer best role to project" do
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
create_actor_relation(@group, @user, 'reader')
|
||||||
@project.relations.create(actor_id: @user.id, actor_type: 'User', role: 'writer')
|
create_relation(@project, @user, 'writer')
|
||||||
@user.best_role(@project).should == 'writer'
|
@user.best_role(@project).should == 'writer'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "for user with admin role in group and reader role in project" do
|
context "for user with admin role in group and reader role in project" do
|
||||||
it "should have admin best role to project" do
|
it "should have admin best role to project" do
|
||||||
@group.actors.create(actor_id: @user.id, actor_type: 'User', role: 'admin')
|
create_actor_relation(@group, @user, 'admin')
|
||||||
@project.relations.create(actor_id: @user.id, actor_type: 'User', role: 'reader')
|
create_relation(@project, @user, 'reader')
|
||||||
@user.best_role(@project).should == 'admin'
|
@user.best_role(@project).should == 'admin'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
def create_relation(target, actor, role)
|
||||||
|
target.relations.create!(actor: actor, role: role)
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_actor_relation(target, actor, role)
|
||||||
|
target.actors.create!(actor: actor, role: role)
|
||||||
|
end
|
Loading…
Reference in New Issue