Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Walker <bwalker@gitlab.com>2018-12-11 21:01:02 +0300
committerBrett Walker <bwalker@gitlab.com>2019-01-03 23:37:35 +0300
commit23d5f4c99138a74cb4176bfca3fe3fdad1beecc4 (patch)
tree3f450834de26cbc843f718a285312ee09b90c1c1 /lib/gitlab/email/handler
parent3a60173738c277b7ad7da31ebb577d1aaf694485 (diff)
Use new unsubscribe link
We now use `-unsubscribe` instead of `+unsubscribe` in order to support catch all email addresses
Diffstat (limited to 'lib/gitlab/email/handler')
-rw-r--r--lib/gitlab/email/handler/unsubscribe_handler.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/gitlab/email/handler/unsubscribe_handler.rb b/lib/gitlab/email/handler/unsubscribe_handler.rb
index d2f617b868a..77b6c9177de 100644
--- a/lib/gitlab/email/handler/unsubscribe_handler.rb
+++ b/lib/gitlab/email/handler/unsubscribe_handler.rb
@@ -9,7 +9,7 @@ module Gitlab
delegate :project, to: :sent_notification, allow_nil: true
def can_handle?
- mail_key =~ /\A\w+#{Regexp.escape(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX)}\z/
+ mail_key =~ /\A\w+#{Regexp.escape(suffix)}\z/
end
def execute
@@ -28,8 +28,16 @@ module Gitlab
@sent_notification ||= SentNotification.for(reply_key)
end
+ def suffix
+ @suffix ||= if mail_key&.end_with?(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX)
+ Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX
+ else
+ Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX_OLD
+ end
+ end
+
def reply_key
- mail_key.sub(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX, '')
+ mail_key.sub(suffix, '')
end
end
end