Browse Source

Merged r21937 from trunk to 5.0-stable (#37685).


git-svn-id: https://svn.redmine.org/redmine/branches/5.0-stable@21953 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/5.0.4
Go MAEDA 1 year ago
parent
commit
5795689010
2 changed files with 31 additions and 5 deletions
  1. 11
    5
      app/helpers/issues_helper.rb
  2. 20
    0
      test/functional/issues_controller_test.rb

+ 11
- 5
app/helpers/issues_helper.rb View File

@@ -764,12 +764,18 @@ module IssuesHelper
end

def projects_for_select(issue)
if issue.parent_issue_id.present?
issue.allowed_target_projects_for_subtask(User.current)
elsif @project && issue.new_record? && !issue.copy?
issue.allowed_target_projects(User.current, 'tree')
projects =
if issue.parent_issue_id.present?
issue.allowed_target_projects_for_subtask(User.current)
elsif @project && issue.new_record? && !issue.copy?
issue.allowed_target_projects(User.current, 'tree')
else
issue.allowed_target_projects(User.current)
end
if issue.read_only_attribute_names(User.current).include?('project_id')
params['project_id'].present? ? Project.where(identifier: params['project_id']) : projects
else
issue.allowed_target_projects(User.current)
projects
end
end
end

+ 20
- 0
test/functional/issues_controller_test.rb View File

@@ -5629,6 +5629,26 @@ class IssuesControllerTest < Redmine::ControllerTest
assert_select 'select[name=?]', 'issue[project_id]', 0
end

def test_new_should_hide_project_if_user_is_not_allowed_to_change_project_in_hierarchy_projects
WorkflowPermission.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1,
:field_name => 'project_id', :rule => 'readonly')

@request.session[:user_id] = 2
get(:new, :params => { :tracker_id => 1, :project_id => 1 })
assert_response :success
assert_select 'select[name=?]', 'issue[project_id]', 0
end

def test_new_should_show_project_if_user_is_not_allowed_to_change_project_global_new_issue
WorkflowPermission.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1,
:field_name => 'project_id', :rule => 'readonly')

@request.session[:user_id] = 2
get(:new, :params => { :tracker_id => 1})
assert_response :success
assert_select 'select[name=?]', 'issue[project_id]'
end

def test_edit_should_not_hide_project_when_user_changes_the_project_even_if_project_is_readonly_on_target_project
WorkflowPermission.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1,
:field_name => 'project_id', :rule => 'readonly')

Loading…
Cancel
Save