Merge pull request #1977 from urbanrotnik/ur-sci-3761-unable-to-access-shared-inventory

Fix for inventory-sharing [SCI-3761]
This commit is contained in:
Urban Rotnik 2019-08-12 13:47:10 +02:00 committed by GitHub
commit c213f2fe2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 8 deletions

View file

@ -304,7 +304,7 @@ class RepositoriesController < ApplicationController
def load_vars
repository_id = params[:id] || params[:repository_id]
@repository = current_team.repositories.find_by_id(repository_id)
@repository = Repository.accessible_by_teams(current_team).find_by_id(repository_id)
render_404 unless @repository
end

View file

@ -173,14 +173,14 @@ class RepositoryColumnsController < ApplicationController
AvailableRepositoryColumn = Struct.new(:id, :name)
def load_vars
@repository = current_team.repositories.find_by_id(params[:repository_id])
@repository = Repository.accessible_by_teams(current_team).find_by_id(params[:repository_id])
render_404 unless @repository
@repository_column = @repository.repository_columns.find_by_id(params[:id])
render_404 unless @repository_column
end
def load_vars_nested
@repository = current_team.repositories.find_by_id(params[:repository_id])
@repository = Repository.accessible_by_teams(current_team).find_by_id(params[:repository_id])
render_404 unless @repository
end

View file

@ -348,9 +348,10 @@ class RepositoryRowsController < ApplicationController
end
def load_vars
@repository = current_team.repositories
.eager_load(:repository_columns)
.find_by_id(params[:repository_id])
@repository = Repository.accessible_by_teams(current_team)
.eager_load(:repository_columns)
.find_by_id(params[:repository_id])
@record = @repository.repository_rows
.eager_load(:repository_columns)
.find_by_id(params[:id])
@ -358,7 +359,7 @@ class RepositoryRowsController < ApplicationController
end
def load_repository
@repository = current_team.repositories.find_by_id(params[:repository_id])
@repository = Repository.accessible_by_teams(current_team).find_by_id(params[:repository_id])
render_404 unless @repository
render_403 unless can_read_repository?(@repository)
end

View file

@ -31,7 +31,8 @@ class Repository < ApplicationRecord
scope :accessible_by_teams, lambda { |teams|
left_outer_joins(:team_repositories)
.where('repositories.team_id IN (?) OR team_repositories.team_id IN (?)', teams, teams)
.uniq.sort_by(&:created_at)
.distinct
.order(:created_at)
}
def self.search(