jbox-web/redmine_git_hosting

View on GitHub
app/controllers/concerns/xitolite_repository_finder.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module XitoliteRepositoryFinder
  extend ActiveSupport::Concern

  def find_xitolite_repository
    @repository = Repository::Xitolite.find find_repository_param
  rescue ActiveRecord::RecordNotFound
    render_404
  else
    @project = @repository.project
    render_404 if @project.nil?
  end

  def find_xitolite_repository_by_path
    repo_path = "#{params[:repo_path]}.git"
    repository = Repository::Xitolite.find_by_path repo_path, loose: true
    if repository.nil?
      RedmineGitHosting.logger.error "GoRedirector : repository not found at path : '#{repo_path}', " \
                                     'exiting!'
      render_404
    elsif !repository.go_access_available?
      RedmineGitHosting.logger.error "GoRedirector : GoAccess is disabled for this repository '#{repository.gitolite_repository_name}', " \
                                     'exiting!'
      render_403
    else
      RedmineGitHosting.logger.info "GoRedirector : access granted for repository '#{repository.gitolite_repository_name}'"
      @repository = repository
    end
  end
end