##// END OF EJS Templates
Merged r12056 from trunk (#14447)....
Jean-Philippe Lang -
r11834:e8757fec2b61
parent child
Show More
@@ -744,12 +744,16 class Issue < ActiveRecord::Base
744 initial_status = IssueStatus.find_by_id(status_id_was)
744 initial_status = IssueStatus.find_by_id(status_id_was)
745 end
745 end
746 initial_status ||= status
746 initial_status ||= status
747
747
748 initial_assigned_to_id = assigned_to_id_changed? ? assigned_to_id_was : assigned_to_id
749 assignee_transitions_allowed = initial_assigned_to_id.present? &&
750 (user.id == initial_assigned_to_id || user.group_ids.include?(initial_assigned_to_id))
751
748 statuses = initial_status.find_new_statuses_allowed_to(
752 statuses = initial_status.find_new_statuses_allowed_to(
749 user.admin ? Role.all : user.roles_for_project(project),
753 user.admin ? Role.all : user.roles_for_project(project),
750 tracker,
754 tracker,
751 author == user,
755 author == user,
752 assigned_to_id_changed? ? assigned_to_id_was == user.id : assigned_to_id == user.id
756 assignee_transitions_allowed
753 )
757 )
754 statuses << initial_status unless statuses.empty?
758 statuses << initial_status unless statuses.empty?
755 statuses << IssueStatus.default if include_default
759 statuses << IssueStatus.default if include_default
@@ -488,9 +488,9 class IssueTest < ActiveSupport::TestCase
488 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
488 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
489 :old_status_id => 1, :new_status_id => 3,
489 :old_status_id => 1, :new_status_id => 3,
490 :author => true, :assignee => false)
490 :author => true, :assignee => false)
491 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1,
491 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
492 :new_status_id => 4, :author => false,
492 :old_status_id => 1, :new_status_id => 4,
493 :assignee => true)
493 :author => false, :assignee => true)
494 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
494 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
495 :old_status_id => 1, :new_status_id => 5,
495 :old_status_id => 1, :new_status_id => 5,
496 :author => true, :assignee => true)
496 :author => true, :assignee => true)
@@ -516,6 +516,26 class IssueTest < ActiveSupport::TestCase
516 :project_id => 1, :author => user,
516 :project_id => 1, :author => user,
517 :assigned_to => user)
517 :assigned_to => user)
518 assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
518 assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
519
520 group = Group.generate!
521 group.users << user
522 issue = Issue.generate!(:tracker => tracker, :status => status,
523 :project_id => 1, :author => user,
524 :assigned_to => group)
525 assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
526 end
527
528 def test_new_statuses_allowed_to_should_consider_group_assignment
529 WorkflowTransition.delete_all
530 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
531 :old_status_id => 1, :new_status_id => 4,
532 :author => false, :assignee => true)
533 user = User.find(2)
534 group = Group.generate!
535 group.users << user
536
537 issue = Issue.generate!(:author_id => 1, :assigned_to => group)
538 assert_include 4, issue.new_statuses_allowed_to(user).map(&:id)
519 end
539 end
520
540
521 def test_new_statuses_allowed_to_should_return_all_transitions_for_admin
541 def test_new_statuses_allowed_to_should_return_all_transitions_for_admin
General Comments 0
You need to be logged in to leave comments. Login now