From bba03dc8febb8d44564339bc08fb71eb65349d8a Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Tue, 14 Jul 2015 18:32:46 -0300 Subject: [PATCH] Assign task to members with view_tasks permission --- lib/proposals_discussion_plugin/proposal_task.rb | 2 +- test/unit/proposal_task_test.rb | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/proposals_discussion_plugin/proposal_task.rb b/lib/proposals_discussion_plugin/proposal_task.rb index 20365b8..85ef768 100644 --- a/lib/proposals_discussion_plugin/proposal_task.rb +++ b/lib/proposals_discussion_plugin/proposal_task.rb @@ -42,7 +42,7 @@ class ProposalsDiscussionPlugin::ProposalTask < Task before_create do |task| if !task.target.nil? organization = task.target - responsible_candidates = organization.members.by_role(organization.roles.reject {|r| !r.has_permission?('perform_task')}) + responsible_candidates = organization.members.by_role(organization.roles.reject {|r| !r.has_permission?('view_tasks')}) task.responsible = responsible_candidates.sample end end diff --git a/test/unit/proposal_task_test.rb b/test/unit/proposal_task_test.rb index dbdb37c..96f2ee3 100644 --- a/test/unit/proposal_task_test.rb +++ b/test/unit/proposal_task_test.rb @@ -2,10 +2,11 @@ require_relative '../test_helper' class ProposalTaskTest < ActiveSupport::TestCase - attr_reader :profile, :proposal, :person, :discussion + attr_reader :profile, :person, :discussion def setup @person = fast_create(Person) + @profile = fast_create(Community) @discussion = ProposalsDiscussionPlugin::Discussion.create!(:name => 'discussion', :profile => person, :allow_topics => false) end @@ -15,4 +16,17 @@ class ProposalTaskTest < ActiveSupport::TestCase assert_equal topic.name, task.proposal_source end + should 'assign proposal task to member with view_task permission' do + role1 = Role.create!(:name => 'profile_role2', :permissions => ['perform_task'], :environment => Environment.default) + role2 = Role.create!(:name => 'profile_role', :permissions => ['view_tasks'], :environment => Environment.default) + + person1 = fast_create(Person) + person1.define_roles([role1], profile) + person2 = fast_create(Person) + person2.define_roles([role2], profile) + + task = ProposalsDiscussionPlugin::ProposalTask.create!(:requestor => person, :target => profile, :article => {:name => 'proposal 1', :abstract => 'proposal 1'}) + assert_equal person2, task.responsible + end + end -- libgit2 0.21.2