Skip to content
Snippets Groups Projects
Commit a4a3da76 authored by Kamil Trzcińśki's avatar Kamil Trzcińśki
Browse files

Allow to access pipelines even if they are disabled, but only present jobs and...

Allow to access pipelines even if they are disabled, but only present jobs and commit statuses without giving ability to access them
parent 6f5a68f5
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -5,7 +5,6 @@ class Projects::GraphsController < Projects::ApplicationController
before_action :require_non_empty_project
before_action :assign_ref_vars
before_action :authorize_download_code!
before_action :builds_enabled, only: :ci
 
def show
respond_to do |format|
Loading
Loading
Loading
Loading
@@ -4,7 +4,6 @@ class Projects::PipelinesController < Projects::ApplicationController
before_action :authorize_read_pipeline!
before_action :authorize_create_pipeline!, only: [:new, :create]
before_action :authorize_update_pipeline!, only: [:retry, :cancel]
before_action :builds_enabled, only: :charts
 
wrap_parameters Ci::Pipeline
 
Loading
Loading
Loading
Loading
@@ -218,6 +218,10 @@ module ProjectsHelper
nav_tabs << :container_registry
end
 
if project.builds_enabled? && can?(current_user, :read_pipeline, project)
nav_tabs << :pipelines
end
tab_ability_map.each do |tab, ability|
if can?(current_user, ability, project)
nav_tabs << tab
Loading
Loading
@@ -231,7 +235,6 @@ module ProjectsHelper
{
environments: :read_environment,
milestones: :read_milestone,
pipelines: :read_pipeline,
snippets: :read_project_snippet,
settings: :admin_project,
builds: :read_build,
Loading
Loading
Loading
Loading
@@ -11,6 +11,7 @@ class GenericCommitStatus < CommitStatus
def set_default_values
self.context ||= 'default'
self.stage ||= 'external'
self.stage_idx ||= 1000000
end
 
def tags
Loading
Loading
Loading
Loading
@@ -203,7 +203,7 @@ class ProjectPolicy < BasePolicy
 
unless project.feature_available?(:builds, user) && repository_enabled
cannot!(*named_abilities(:build))
cannot!(*named_abilities(:pipeline))
cannot!(*named_abilities(:pipeline) - [:read_pipeline])
cannot!(*named_abilities(:pipeline_schedule))
cannot!(*named_abilities(:environment))
cannot!(*named_abilities(:deployment))
Loading
Loading
Loading
Loading
@@ -102,11 +102,10 @@ class GitPushService < BaseService
.perform_async(@project.id, current_user.id, params[:oldrev], params[:newrev], params[:ref])
 
SystemHookPushWorker.perform_async(build_push_data.dup, :push_hooks)
Ci::CreatePipelineService.new(@project, current_user, build_push_data).execute(:push)
EventCreateService.new.push(@project, current_user, build_push_data)
@project.execute_hooks(build_push_data.dup, :push_hooks)
@project.execute_services(build_push_data.dup, :push_hooks)
Ci::CreatePipelineService.new(@project, current_user, build_push_data).execute(:push)
 
if push_remove_branch?
AfterBranchDeleteService
Loading
Loading
Loading
Loading
@@ -8,10 +8,10 @@ class GitTagPushService < BaseService
@push_data = build_push_data
 
EventCreateService.new.push(project, current_user, @push_data)
Ci::CreatePipelineService.new(project, current_user, @push_data).execute(:push)
SystemHooksService.new.execute_hooks(build_system_push_data.dup, :tag_push_hooks)
project.execute_hooks(@push_data.dup, :tag_push_hooks)
project.execute_services(@push_data.dup, :tag_push_hooks)
Ci::CreatePipelineService.new(project, current_user, @push_data).execute(:push)
ProjectCacheWorker.perform_async(project.id, [], [:commit_count, :repository_size])
 
true
Loading
Loading
Loading
Loading
@@ -3,6 +3,10 @@ module Gitlab
module Status
module External
module Common
def label
subject.description || super
end
def has_details?
subject.target_url.present? &&
can?(user, :read_commit_status, subject)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment