diff options
author | Vladimir Shushlin <vshushlin@gitlab.com> | 2019-04-09 20:46:29 +0300 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-04-09 20:46:29 +0300 |
commit | d69d29011cf9fe06e50a2c7d65b1ea88ea2d41d5 (patch) | |
tree | a794b2c4bfe9b00b552463928249b85957a5de05 /app/services/verify_pages_domain_service.rb | |
parent | 61ab1f7364b1ea44984a67bb6ea0f5a2b7a353c8 (diff) |
Mark unverified pages domains for removal
Set pages_domain.remove_at when disabling it
Add specs for marking pages domain for removal
Notify user that domain is being removed
Add documentation
Diffstat (limited to 'app/services/verify_pages_domain_service.rb')
-rw-r--r-- | app/services/verify_pages_domain_service.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/app/services/verify_pages_domain_service.rb b/app/services/verify_pages_domain_service.rb index 07f7391f877..b53c3145caf 100644 --- a/app/services/verify_pages_domain_service.rb +++ b/app/services/verify_pages_domain_service.rb @@ -8,6 +8,7 @@ class VerifyPagesDomainService < BaseService # How long verification lasts for VERIFICATION_PERIOD = 7.days + REMOVAL_DELAY = 1.week.freeze attr_reader :domain @@ -36,7 +37,7 @@ class VerifyPagesDomainService < BaseService # Prevent any pre-existing grace period from being truncated reverify = [domain.enabled_until, VERIFICATION_PERIOD.from_now].compact.max - domain.assign_attributes(verified_at: Time.now, enabled_until: reverify) + domain.assign_attributes(verified_at: Time.now, enabled_until: reverify, remove_at: nil) domain.save!(validate: false) if was_disabled @@ -49,18 +50,20 @@ class VerifyPagesDomainService < BaseService end def unverify_domain! - if domain.verified? - domain.assign_attributes(verified_at: nil) - domain.save!(validate: false) + was_verified = domain.verified? - notify(:verification_failed) - end + domain.assign_attributes(verified_at: nil) + domain.remove_at ||= REMOVAL_DELAY.from_now unless domain.enabled? + domain.save!(validate: false) + + notify(:verification_failed) if was_verified error("Couldn't verify #{domain.domain}") end def disable_domain! domain.assign_attributes(verified_at: nil, enabled_until: nil) + domain.remove_at ||= REMOVAL_DELAY.from_now domain.save!(validate: false) notify(:disabled) |