summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-06-01 17:16:38 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-06-01 17:16:38 +0000
commitfccf15c2a242fff60b1ee55b7abbe132ba2aceea (patch)
treee5ae6f9f750d92a1ab3a3bd26992a10a211fa0c3
parent05ff5aa11ec61734a254237642a48d789fa33d6b (diff)
downloadredmine-fccf15c2a242fff60b1ee55b7abbe132ba2aceea.tar.gz
redmine-fccf15c2a242fff60b1ee55b7abbe132ba2aceea.zip
Fixed: Private flag ignored when creating an issue with set_own_issues_private permission only (#8472).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5991 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/issues_controller.rb2
-rw-r--r--test/fixtures/roles.yml1
-rw-r--r--test/functional/issues_controller_test.rb30
3 files changed, 32 insertions, 1 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 8750ca87f..63ee316a3 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -301,6 +301,7 @@ private
end
@issue.project = @project
+ @issue.author = User.current
# Tracker must be set before custom field values
@issue.tracker ||= @project.trackers.find((params[:issue] && params[:issue][:tracker_id]) || params[:tracker_id] || :first)
if @issue.tracker.nil?
@@ -314,7 +315,6 @@ private
@issue.watcher_user_ids = params[:issue]['watcher_user_ids']
end
end
- @issue.author = User.current
@priorities = IssuePriority.all
@allowed_statuses = @issue.new_statuses_allowed_to(User.current, true)
end
diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml
index 903df8cb1..57f5e6be0 100644
--- a/test/fixtures/roles.yml
+++ b/test/fixtures/roles.yml
@@ -22,6 +22,7 @@ roles_001:
- :delete_issues
- :view_issue_watchers
- :add_issue_watchers
+ - :set_issues_private
- :delete_issue_watchers
- :manage_public_queries
- :save_queries
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index a0edab1bd..d97043014 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -606,6 +606,36 @@ class IssuesControllerTest < ActionController::TestCase
assert_not_nil issue
assert_nil issue.parent
end
+
+ def test_post_create_private
+ @request.session[:user_id] = 2
+
+ assert_difference 'Issue.count' do
+ post :create, :project_id => 1,
+ :issue => {:tracker_id => 1,
+ :subject => 'This is a private issue',
+ :is_private => '1'}
+ end
+ issue = Issue.first(:order => 'id DESC')
+ assert issue.is_private?
+ end
+
+ def test_post_create_private_with_set_own_issues_private_permission
+ role = Role.find(1)
+ role.remove_permission! :set_issues_private
+ role.add_permission! :set_own_issues_private
+
+ @request.session[:user_id] = 2
+
+ assert_difference 'Issue.count' do
+ post :create, :project_id => 1,
+ :issue => {:tracker_id => 1,
+ :subject => 'This is a private issue',
+ :is_private => '1'}
+ end
+ issue = Issue.first(:order => 'id DESC')
+ assert issue.is_private?
+ end
def test_post_create_should_send_a_notification
ActionMailer::Base.deliveries.clear