diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-18 11:17:02 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-18 11:17:02 +0300 |
commit | b39512ed755239198a9c294b6a45e65c05900235 (patch) | |
tree | d234a3efade1de67c46b9e5a38ce813627726aa7 /app/controllers/concerns | |
parent | d31474cf3b17ece37939d20082b07f6657cc79a9 (diff) |
Add latest changes from gitlab-org/gitlab@15-3-stable-eev15.3.0-rc42
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r-- | app/controllers/concerns/accepts_pending_invitations.rb | 14 | ||||
-rw-r--r-- | app/controllers/concerns/creates_commit.rb | 3 | ||||
-rw-r--r-- | app/controllers/concerns/issuable_actions.rb | 16 | ||||
-rw-r--r-- | app/controllers/concerns/notes_actions.rb | 3 | ||||
-rw-r--r-- | app/controllers/concerns/product_analytics_tracking.rb | 37 | ||||
-rw-r--r-- | app/controllers/concerns/redis_tracking.rb | 2 | ||||
-rw-r--r-- | app/controllers/concerns/uploads_actions.rb | 6 |
7 files changed, 64 insertions, 17 deletions
diff --git a/app/controllers/concerns/accepts_pending_invitations.rb b/app/controllers/concerns/accepts_pending_invitations.rb index 5601b7a7f79..53dec698fa0 100644 --- a/app/controllers/concerns/accepts_pending_invitations.rb +++ b/app/controllers/concerns/accepts_pending_invitations.rb @@ -3,12 +3,12 @@ module AcceptsPendingInvitations extend ActiveSupport::Concern - def accept_pending_invitations - return unless resource.active_for_authentication? + def accept_pending_invitations(user: resource) + return unless user.active_for_authentication? - if resource.pending_invitations.load.any? - resource.accept_pending_invitations! - clear_stored_location_for_resource + if user.pending_invitations.load.any? + user.accept_pending_invitations! + clear_stored_location_for(user: user) after_pending_invitations_hook end end @@ -17,8 +17,8 @@ module AcceptsPendingInvitations # no-op end - def clear_stored_location_for_resource - session_key = stored_location_key_for(resource) + def clear_stored_location_for(user:) + session_key = stored_location_key_for(user) session.delete(session_key) end diff --git a/app/controllers/concerns/creates_commit.rb b/app/controllers/concerns/creates_commit.rb index 0fb77e2aaf4..b6ba1b13cc3 100644 --- a/app/controllers/concerns/creates_commit.rb +++ b/app/controllers/concerns/creates_commit.rb @@ -98,8 +98,7 @@ module CreatesCommit project_new_merge_request_path( @project_to_commit_into, merge_request: { - source_project_id: @project_to_commit_into.id, - target_project_id: target_project.id, + target_project_id: @project_to_commit_into.default_merge_request_target.id, source_branch: @branch_name, target_branch: @start_branch } diff --git a/app/controllers/concerns/issuable_actions.rb b/app/controllers/concerns/issuable_actions.rb index a5e49b1b16a..f1d80e37674 100644 --- a/app/controllers/concerns/issuable_actions.rb +++ b/app/controllers/concerns/issuable_actions.rb @@ -171,7 +171,7 @@ module IssuableActions discussions = Discussion.build_collection(notes, issuable) if issuable.is_a?(MergeRequest) - render_cached(discussions, with: discussion_serializer, cache_context: -> (_) { discussion_cache_context }, context: self) + render_mr_discussions(discussions, discussion_serializer, discussion_cache_context) elsif issuable.is_a?(Issue) render json: discussion_serializer.represent(discussions, context: self) if stale?(etag: [discussion_cache_context, discussions]) else @@ -182,6 +182,20 @@ module IssuableActions private + def render_mr_discussions(discussions, serializer, cache_context) + return unless stale?(etag: [cache_context, discussions]) + + if Feature.enabled?(:disabled_mr_discussions_redis_cache, project) + render json: serializer.represent(discussions, context: self) + else + render_cached_discussions(discussions, serializer, cache_context) + end + end + + def render_cached_discussions(discussions, serializer, cache_context) + render_cached(discussions, with: serializer, cache_context: -> (_) { cache_context }, context: self) + end + def paginated_discussions return if params[:per_page].blank? return if issuable.instance_of?(MergeRequest) && Feature.disabled?(:paginated_mr_discussions, project) diff --git a/app/controllers/concerns/notes_actions.rb b/app/controllers/concerns/notes_actions.rb index 928c617471b..b595c3c6790 100644 --- a/app/controllers/concerns/notes_actions.rb +++ b/app/controllers/concerns/notes_actions.rb @@ -217,7 +217,8 @@ module NotesActions :note, :line_code, # LegacyDiffNote :position, # DiffNote - :confidential + :confidential, + :internal ).tap do |create_params| create_params.merge!( params.permit(:merge_request_diff_head_sha, :in_reply_to_discussion_id) diff --git a/app/controllers/concerns/product_analytics_tracking.rb b/app/controllers/concerns/product_analytics_tracking.rb index dc7ba8295b9..260b433cc6f 100644 --- a/app/controllers/concerns/product_analytics_tracking.rb +++ b/app/controllers/concerns/product_analytics_tracking.rb @@ -13,6 +13,14 @@ module ProductAnalyticsTracking route_events_to(destinations, name, &block) end end + + def track_custom_event(*controller_actions, name:, conditions: nil, action:, label:, destinations: [:redis_hll], &block) + custom_conditions = [:trackable_html_request?, *conditions] + + after_action only: controller_actions, if: custom_conditions do + route_custom_events_to(destinations, name, action, label, &block) + end + end end private @@ -25,13 +33,40 @@ module ProductAnalyticsTracking end end + def route_custom_events_to(destinations, name, action, label, &block) + track_unique_redis_hll_event(name, &block) if destinations.include?(:redis_hll) + + return unless destinations.include?(:snowplow) && event_enabled?(name) + + optional_arguments = { + namespace: tracking_namespace_source, + project: tracking_project_source + }.compact + + Gitlab::Tracking.event( + self.class.to_s, + action, + user: current_user, + property: name, + label: label, + **optional_arguments + ) + end + def event_enabled?(event) events_to_ff = { g_analytics_valuestream: :route_hll_to_snowplow, i_search_paid: :route_hll_to_snowplow_phase2, i_search_total: :route_hll_to_snowplow_phase2, - i_search_advanced: :route_hll_to_snowplow_phase2 + i_search_advanced: :route_hll_to_snowplow_phase2, + i_ecosystem_jira_service_list_issues: :route_hll_to_snowplow_phase2, + users_viewing_analytics_group_devops_adoption: :route_hll_to_snowplow_phase2, + i_analytics_dev_ops_adoption: :route_hll_to_snowplow_phase2, + i_analytics_dev_ops_score: :route_hll_to_snowplow_phase2, + p_analytics_merge_request: :route_hll_to_snowplow_phase2, + i_analytics_instance_statistics: :route_hll_to_snowplow_phase2, + g_analytics_contribution: :route_hll_to_snowplow_phase2 } Feature.enabled?(events_to_ff[event.to_sym], tracking_namespace_source) diff --git a/app/controllers/concerns/redis_tracking.rb b/app/controllers/concerns/redis_tracking.rb index c1135d2f759..445e72b8266 100644 --- a/app/controllers/concerns/redis_tracking.rb +++ b/app/controllers/concerns/redis_tracking.rb @@ -29,7 +29,7 @@ module RedisTracking private def track_unique_redis_hll_event(event_name, &block) - custom_id = block_given? ? yield(self) : nil + custom_id = block ? yield(self) : nil unique_id = custom_id || visitor_id diff --git a/app/controllers/concerns/uploads_actions.rb b/app/controllers/concerns/uploads_actions.rb index f914e804e18..e98d36854f1 100644 --- a/app/controllers/concerns/uploads_actions.rb +++ b/app/controllers/concerns/uploads_actions.rb @@ -143,10 +143,8 @@ module UploadsActions end def bypass_auth_checks_on_uploads? - if ::Feature.enabled?(:enforce_auth_checks_on_uploads, target_project) - if target_project && !target_project.public? && target_project.enforce_auth_checks_on_uploads? - return false - end + if target_project && !target_project.public? && target_project.enforce_auth_checks_on_uploads? + return false end action_name == 'show' && embeddable? |