Show statistics also when repository is disabled
This commit is contained in:
		
							parent
							
								
									09d25b04c3
								
							
						
					
					
						commit
						12adb2a4bc
					
				| 
						 | 
				
			
			@ -187,6 +187,7 @@ class ProjectPolicy < BasePolicy
 | 
			
		|||
 | 
			
		||||
  rule { can?(:reporter_access) }.policy do
 | 
			
		||||
    enable :download_code
 | 
			
		||||
    enable :read_statistics
 | 
			
		||||
    enable :download_wiki_code
 | 
			
		||||
    enable :fork_project
 | 
			
		||||
    enable :create_project_snippet
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
---
 | 
			
		||||
title: Show statistics also when repository is disabled
 | 
			
		||||
merge_request: 26509
 | 
			
		||||
author: Peter Marko
 | 
			
		||||
type: fixed
 | 
			
		||||
| 
						 | 
				
			
			@ -275,7 +275,7 @@ module API
 | 
			
		|||
      expose :printing_merge_request_link_enabled
 | 
			
		||||
      expose :merge_method
 | 
			
		||||
      expose :statistics, using: 'API::Entities::ProjectStatistics', if: -> (project, options) {
 | 
			
		||||
        options[:statistics] && Ability.allowed?(options[:current_user], :download_code, project)
 | 
			
		||||
        options[:statistics] && Ability.allowed?(options[:current_user], :read_statistics, project)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      # rubocop: disable CodeReuse/ActiveRecord
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1183,6 +1183,16 @@ describe API::Projects do
 | 
			
		|||
          expect(response).to have_gitlab_http_status(200)
 | 
			
		||||
          expect(json_response).to include 'statistics'
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        it "includes statistics also when repository is disabled" do
 | 
			
		||||
          project.add_developer(user)
 | 
			
		||||
          project.project_feature.update_attribute(:repository_access_level, ProjectFeature::DISABLED)
 | 
			
		||||
 | 
			
		||||
          get api("/projects/#{project.id}", user), params: { statistics: true }
 | 
			
		||||
 | 
			
		||||
          expect(response).to have_gitlab_http_status(200)
 | 
			
		||||
          expect(json_response).to include 'statistics'
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it "includes import_error if user can admin project" do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue