Feature #9432 » 0001-Allow-the-default-value-of-the-private-field-to-be-c.patch
app/controllers/issues_controller.rb | ||
---|---|---|
624 | 624 | |
625 | 625 |
if @issue.project |
626 | 626 |
@issue.tracker ||= @issue.allowed_target_trackers.first |
627 |
@issue.is_private ||= @issue.tracker&.private_by_default? |
|
627 | 628 |
if @issue.tracker.nil? |
628 | 629 |
if @issue.project.trackers.any? |
629 | 630 |
# None of the project trackers is allowed to the user |
app/models/tracker.rb | ||
---|---|---|
74 | 74 |
'name', |
75 | 75 |
'default_status_id', |
76 | 76 |
'is_in_roadmap', |
77 |
'private_by_default', |
|
77 | 78 |
'core_fields', |
78 | 79 |
'position', |
79 | 80 |
'custom_field_ids', |
app/views/trackers/_form.html.erb | ||
---|---|---|
10 | 10 |
:include_blank => @tracker.default_status.nil?, |
11 | 11 |
:required => true %> |
12 | 12 |
</p> |
13 |
<p><%= f.check_box :private_by_default %></p> |
|
13 | 14 |
<p><%= f.check_box :is_in_roadmap %></p> |
14 | 15 |
<p><%= f.text_area :description, :rows => 4 %></p> |
15 | 16 |
<p> |
config/locales/en.yml | ||
---|---|---|
319 | 319 |
field_is_public: Public |
320 | 320 |
field_parent: Subproject of |
321 | 321 |
field_is_in_roadmap: Issues displayed in roadmap |
322 |
field_private_by_default: Private by default |
|
322 | 323 |
field_login: Login |
323 | 324 |
field_mail_notification: Email notifications |
324 | 325 |
field_admin: Administrator |
db/migrate/20230414071513_add_private_by_default_to_trackers.rb | ||
---|---|---|
1 |
class AddPrivateByDefaultToTrackers < ActiveRecord::Migration[6.1] |
|
2 |
def change |
|
3 |
add_column :trackers, :private_by_default, :boolean, default: false, null: false, after: :default_status_id |
|
4 |
end |
|
5 |
end |
test/functional/issues_controller_test.rb | ||
---|---|---|
5634 | 5634 |
assert_equal [], issue.watcher_user_ids |
5635 | 5635 |
end |
5636 | 5636 | |
5637 |
def test_create_should_respect_private_by_default_per_tracker_setting |
|
5638 |
@request.session[:user_id] = 2 |
|
5639 |
tracker = Tracker.find(1) |
|
5640 | ||
5641 |
post_issue = -> do |
|
5642 |
post( |
|
5643 |
:create, |
|
5644 |
params: { |
|
5645 |
project_id: 1, |
|
5646 |
issue: {tracker_id: tracker.id, status_id: '1', subject: '_'} |
|
5647 |
} |
|
5648 |
) |
|
5649 |
end |
|
5650 | ||
5651 |
tracker.update_attribute(:private_by_default, true) |
|
5652 |
assert_difference 'Issue.count' do |
|
5653 |
post_issue.call |
|
5654 |
end |
|
5655 |
issue = Issue.order('id DESC').first |
|
5656 |
assert issue.is_private? |
|
5657 | ||
5658 |
tracker.update_attribute(:private_by_default, false) |
|
5659 |
assert_difference 'Issue.count' do |
|
5660 |
post_issue.call |
|
5661 |
end |
|
5662 |
issue = Issue.order('id DESC').first |
|
5663 |
assert_not issue.is_private? |
|
5664 |
end |
|
5665 | ||
5637 | 5666 |
def test_get_edit |
5638 | 5667 |
@request.session[:user_id] = 2 |
5639 | 5668 |
get(:edit, :params => {:id => 1}) |
test/integration/api_test/issues_test.rb | ||
---|---|---|
753 | 753 |
assert_response 422 |
754 | 754 |
end |
755 | 755 | |
756 |
test "POST /issues.json should respect the private_by_default per tracker setting" do |
|
757 |
tracker = Tracker.find(1) |
|
758 |
tracker.update_attribute(:private_by_default, true) |
|
759 |
issue = new_record(Issue) do |
|
760 |
post( |
|
761 |
'/issues.json', |
|
762 |
:params => {:issue => {:project_id => 1, :tracker_id => 1, :subject => 'API'}}, |
|
763 |
:headers => credentials('jsmith')) |
|
764 |
end |
|
765 |
assert issue.is_private? |
|
766 | ||
767 |
tracker.update_attribute(:private_by_default, false) |
|
768 |
issue = new_record(Issue) do |
|
769 |
post( |
|
770 |
'/issues.json', |
|
771 |
:params => {:issue => {:project_id => 1, :tracker_id => 1, :subject => 'API'}}, |
|
772 |
:headers => credentials('jsmith')) |
|
773 |
end |
|
774 |
assert_not issue.is_private? |
|
775 |
end |
|
776 | ||
756 | 777 |
test "PUT /issues/:id.xml" do |
757 | 778 |
assert_difference('Journal.count') do |
758 | 779 |
put( |
- « Previous
- 1
- …
- 5
- 6
- 7
- Next »