diff options
author | Rémy Coutable <remy@rymai.me> | 2017-09-07 19:22:09 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-09-07 19:22:09 +0300 |
commit | 45510326d0ebec81539b855ec7789c8bb092eb67 (patch) | |
tree | 4c9ab8c938d2b03974470abdb1c0acfa06e3468d /app | |
parent | 523a1c69ab6c51969f2613c4042d91318f841081 (diff) | |
parent | 091b1c5ed59b5c505d29c8905c78a867b12d5641 (diff) |
Merge branch '31362_decrease_cyclomatic_complexity_threshold_step3' into 'master'
Decrease Cyclomatic Complexity threshold to 14
See merge request !13972
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/projects_helper.rb | 10 | ||||
-rw-r--r-- | app/services/ci/create_pipeline_service.rb | 40 |
2 files changed, 28 insertions, 22 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 86665ea2aec..51c625ede4b 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -15,9 +15,13 @@ module ProjectsHelper end def link_to_member_avatar(author, opts = {}) - default_opts = { avatar: true, name: true, size: 16, author_class: 'author', title: ":name" } + default_opts = { size: 16 } opts = default_opts.merge(opts) - image_tag(avatar_icon(author, opts[:size]), width: opts[:size], class: "avatar avatar-inline #{"s#{opts[:size]}" if opts[:size]}", alt: '') if opts[:avatar] + + classes = %W[avatar avatar-inline s#{opts[:size]}] + classes << opts[:avatar_class] if opts[:avatar_class] + + image_tag(avatar_icon(author, opts[:size]), width: opts[:size], class: classes, alt: '') end def link_to_member(project, author, opts = {}, &block) @@ -29,7 +33,7 @@ module ProjectsHelper author_html = "" # Build avatar image tag - author_html << image_tag(avatar_icon(author, opts[:size]), width: opts[:size], class: "avatar avatar-inline #{"s#{opts[:size]}" if opts[:size]} #{opts[:avatar_class] if opts[:avatar_class]}", alt: '') if opts[:avatar] + author_html << link_to_member_avatar(author, opts) if opts[:avatar] # Build name span tag if opts[:by_username] diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb index 414c01b2546..d20de9b16a4 100644 --- a/app/services/ci/create_pipeline_service.rb +++ b/app/services/ci/create_pipeline_service.rb @@ -16,9 +16,9 @@ module Ci protected: project.protected_for?(ref) ) - result = validate(current_user, - ignore_skip_ci: ignore_skip_ci, - save_on_errors: save_on_errors) + result = validate_project_and_git_items || + validate_pipeline(ignore_skip_ci: ignore_skip_ci, + save_on_errors: save_on_errors) return result if result @@ -47,13 +47,13 @@ module Ci private - def validate(triggering_user, ignore_skip_ci:, save_on_errors:) + def validate_project_and_git_items unless project.builds_enabled? return error('Pipeline is disabled') end - unless allowed_to_trigger_pipeline?(triggering_user) - if can?(triggering_user, :create_pipeline, project) + unless allowed_to_trigger_pipeline? + if can?(current_user, :create_pipeline, project) return error("Insufficient permissions for protected ref '#{ref}'") else return error('Insufficient permissions to create a new pipeline') @@ -67,7 +67,9 @@ module Ci unless commit return error('Commit not found') end + end + def validate_pipeline(ignore_skip_ci:, save_on_errors:) unless pipeline.config_processor unless pipeline.ci_yaml_file return error("Missing #{pipeline.ci_yaml_file_path} file") @@ -85,25 +87,25 @@ module Ci end end - def allowed_to_trigger_pipeline?(triggering_user) - if triggering_user - allowed_to_create?(triggering_user) + def allowed_to_trigger_pipeline? + if current_user + allowed_to_create? else # legacy triggers don't have a corresponding user !project.protected_for?(ref) end end - def allowed_to_create?(triggering_user) - access = Gitlab::UserAccess.new(triggering_user, project: project) + def allowed_to_create? + return unless can?(current_user, :create_pipeline, project) - can?(triggering_user, :create_pipeline, project) && - if branch? - access.can_update_branch?(ref) - elsif tag? - access.can_create_tag?(ref) - else - true # Allow it for now and we'll reject when we check ref existence - end + access = Gitlab::UserAccess.new(current_user, project: project) + if branch? + access.can_update_branch?(ref) + elsif tag? + access.can_create_tag?(ref) + else + true # Allow it for now and we'll reject when we check ref existence + end end def update_merge_requests_head_pipeline |