Disable redirect messages for anonymous clones
This commit is contained in:
parent
a83c41f6c6
commit
b6c711fd38
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue