diff options
Diffstat (limited to 'app/controllers/concerns/ci/auth_build_trace.rb')
-rw-r--r-- | app/controllers/concerns/ci/auth_build_trace.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/controllers/concerns/ci/auth_build_trace.rb b/app/controllers/concerns/ci/auth_build_trace.rb new file mode 100644 index 00000000000..0370a382eb8 --- /dev/null +++ b/app/controllers/concerns/ci/auth_build_trace.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Ci + module AuthBuildTrace + extend ActiveSupport::Concern + + def authorize_read_build_trace! + return if can?(current_user, :read_build_trace, build) + + if build.debug_mode? + access_denied!( + _('You must have developer or higher permissions in the associated project to view job logs when debug ' \ + "trace is enabled. To disable debug trace, set the 'CI_DEBUG_TRACE' and 'CI_DEBUG_SERVICES' variables to " \ + "'false' in your pipeline configuration or CI/CD settings. If you must view this job log, " \ + 'a project maintainer or owner must add you to the project with developer permissions or higher.') + ) + else + access_denied!(_('The current user is not authorized to access the job log.')) + end + end + end +end |