Project

General

Profile

Feature #36848 ยป issues_index_api.patch

Yazan Al aeddin, 2022-03-28 09:59

View differences:

app/views/issues/index.api.rsb
32 32
        end
33 33
      end if include_in_api_response?('attachments')
34 34

  
35
      api.array :watchers do
36
        issue.watcher_users.each do |user|
37
          api.user :id => user.id, :name => user.name
38
        end
39
      end if include_in_api_response?('watchers') && User.current.allowed_to?(:view_issue_watchers, issue.project)
40

  
35 41
      api.array :relations do
36 42
        issue.relations.each do |relation|
37 43
          api.relation(:id => relation.id, :issue_id => relation.issue_from_id, :issue_to_id => relation.issue_to_id, :relation_type => relation.relation_type, :delay => relation.delay)
test/functional/issues_controller_test.rb
8274 8274
      end
8275 8275
    end
8276 8276
  end
8277

  
8278
  def test_should_not_list_the_wathcers_in_issue_index_api_without_permission
8279
    get :index, params: { :include => ["watchers"], :format => 'json' }
8280
    assert_response :success
8281
    assert_not_include 'watchers', response.body
8282
  end
8283

  
8284
  def test_should_list_the_wathcers_in_issue_index_api_with_permission
8285
    Role.last.add_permission!(:view_issue_watchers)
8286
    get :index, params: { :include => ["watchers"], :format => 'json' }
8287
    assert_response :success
8288
    watchers =  Watcher.where(watchable_type: 'Issue').sort_by(&:user_id)
8289

  
8290
    if watchers.count
8291
      watchers.each do |watcher|
8292
        st = "{\"id\":#{watcher.user.id},\"name\":\"#{watcher.user.name}\"}"
8293
        assert_include st, response.body
8294
      end
8295
    end
8296
  end
8277 8297
end
    (1-1/1)