diff options
author | Stan Hu <stanhu@gmail.com> | 2017-12-25 05:33:32 -0800 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-12-25 05:33:32 -0800 |
commit | b6c711fd38f65d78bbd02ad9ad05f22bcb5033c5 (patch) | |
tree | b187cef0f1aad1341f8a52fe66c6b6fe6156bef7 | |
parent | a83c41f6c6e0035c40916b3cbdda7fdd4f7e925f (diff) | |
download | gitlab-ce-sh-handle-anonymous-clones-project-moved.tar.gz |
Disable redirect messages for anonymous clonessh-handle-anonymous-clones-project-moved
-rw-r--r-- | lib/gitlab/checks/project_moved.rb | 17 | ||||
-rw-r--r-- | spec/lib/gitlab/checks/project_moved_spec.rb | 3 |
2 files changed, 8 insertions, 12 deletions
diff --git a/lib/gitlab/checks/project_moved.rb b/lib/gitlab/checks/project_moved.rb index c1da2471b54..dfb2f4d4054 100644 --- a/lib/gitlab/checks/project_moved.rb +++ b/lib/gitlab/checks/project_moved.rb @@ -2,7 +2,6 @@ module Gitlab module Checks class ProjectMoved REDIRECT_NAMESPACE = "redirect_namespace".freeze - ANONYMOUS_ID_KEY = 'anonymous'.freeze def initialize(project, user, redirected_path, protocol) @project = project @@ -22,8 +21,12 @@ module Gitlab end def add_redirect_message + # Don't bother with sending a redirect message for anonymous clones + # because they never see it via the `/internal/post_receive` endpoint + return unless user.present? && project.present? + Gitlab::Redis::SharedState.with do |redis| - key = self.class.redirect_message_key(user_identifier, project.id) + key = self.class.redirect_message_key(user.id, project.id) redis.setex(key, 5.minutes, redirect_message) end end @@ -46,14 +49,8 @@ module Gitlab attr_reader :project, :redirected_path, :protocol, :user - def self.redirect_message_key(user_identifier, project_id) - "#{REDIRECT_NAMESPACE}:#{user_identifier}:#{project_id}" - end - - def user_identifier - return ANONYMOUS_ID_KEY unless user.present? - - user.id + def self.redirect_message_key(user_id, project_id) + "#{REDIRECT_NAMESPACE}:#{user_id}:#{project_id}" end def remote_url_message(rejected) diff --git a/spec/lib/gitlab/checks/project_moved_spec.rb b/spec/lib/gitlab/checks/project_moved_spec.rb index 3d72e78332d..f90c2d6aded 100644 --- a/spec/lib/gitlab/checks/project_moved_spec.rb +++ b/spec/lib/gitlab/checks/project_moved_spec.rb @@ -39,8 +39,7 @@ describe Gitlab::Checks::ProjectMoved, :clean_gitlab_redis_shared_state do it 'should handle anonymous clones' do project_moved = described_class.new(project, nil, 'foo/bar', 'http') - expect(project_moved.add_redirect_message).to eq("OK") - expect(Gitlab::Redis::SharedState.with { |redis| redis.get("redirect_namespace:anonymous:#{project.id}") }).not_to be_nil + expect(project_moved.add_redirect_message).to eq(nil) end end |