diff options
author | Nick Thomas <nick@gitlab.com> | 2019-07-12 16:52:38 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-07-12 16:52:38 +0000 |
commit | 66333bc78b200f5cfdd3fc47aa1ed52a0eb4220a (patch) | |
tree | aee04ec049768843b4a0e3a2942f568031e972f9 /app | |
parent | d8e642dece583aa1856a0476edfcc35cdef786ed (diff) | |
parent | 12563bb37c3b439f1bf12b2fe66fb2034bfc24a0 (diff) | |
download | gitlab-ce-66333bc78b200f5cfdd3fc47aa1ed52a0eb4220a.tar.gz |
Merge branch 'fix-only-https-pages-domains' into 'master'
Fix saving domain without certificate for auto_ssl
See merge request gitlab-org/gitlab-ce!30673
Diffstat (limited to 'app')
-rw-r--r-- | app/models/pages_domain.rb | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/app/models/pages_domain.rb b/app/models/pages_domain.rb index d6d879c6d89..e6e491634ab 100644 --- a/app/models/pages_domain.rb +++ b/app/models/pages_domain.rb @@ -12,9 +12,11 @@ class PagesDomain < ApplicationRecord validates :domain, hostname: { allow_numeric_hostname: true } validates :domain, uniqueness: { case_sensitive: false } - validates :certificate, presence: { message: 'must be present if HTTPS-only is enabled' }, if: ->(domain) { domain.project&.pages_https_only? } + validates :certificate, presence: { message: 'must be present if HTTPS-only is enabled' }, + if: :certificate_should_be_present? validates :certificate, certificate: true, if: ->(domain) { domain.certificate.present? } - validates :key, presence: { message: 'must be present if HTTPS-only is enabled' }, if: ->(domain) { domain.project&.pages_https_only? } + validates :key, presence: { message: 'must be present if HTTPS-only is enabled' }, + if: :certificate_should_be_present? validates :key, certificate_key: true, if: ->(domain) { domain.key.present? } validates :verification_code, presence: true, allow_blank: false @@ -249,4 +251,8 @@ class PagesDomain < ApplicationRecord rescue OpenSSL::PKey::PKeyError, OpenSSL::Cipher::CipherError nil end + + def certificate_should_be_present? + !auto_ssl_enabled? && project&.pages_https_only? + end end |