diff options
author | Nick Thomas <nick@gitlab.com> | 2019-06-25 12:34:06 +0300 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-06-25 12:34:06 +0300 |
commit | b08b036d837065c0530e1e57ed95976a88c3cf93 (patch) | |
tree | 1c7e44b0a465587f944c8ba7c0ea2674f1fed2ae /lib | |
parent | 32806aee150239d60783c77ae17811cba139a3ef (diff) | |
parent | 432f2bbc9cf64d53418c1eb9bb701254803a0e1e (diff) |
Merge branch 'pages-ssl-project-aware-feature-flag' into 'master'
Use project depended feature flag for pages ssl and get certificates only for enabled domains
See merge request gitlab-org/gitlab-ce!29609
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/lets_encrypt.rb | 16 | ||||
-rw-r--r-- | lib/gitlab/lets_encrypt/client.rb | 10 |
2 files changed, 17 insertions, 9 deletions
diff --git a/lib/gitlab/lets_encrypt.rb b/lib/gitlab/lets_encrypt.rb new file mode 100644 index 00000000000..cdf24f24647 --- /dev/null +++ b/lib/gitlab/lets_encrypt.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Gitlab + module LetsEncrypt + def self.enabled?(pages_domain = nil) + return false unless Gitlab::CurrentSettings.lets_encrypt_terms_of_service_accepted + + return false unless Feature.enabled?(:pages_auto_ssl) + + # If no domain is passed, just check whether we're enabled globally + return true unless pages_domain + + !!pages_domain.project && Feature.enabled?(:pages_auto_ssl_for_project, pages_domain.project) + end + end +end diff --git a/lib/gitlab/lets_encrypt/client.rb b/lib/gitlab/lets_encrypt/client.rb index 66aea137012..ad2921ed555 100644 --- a/lib/gitlab/lets_encrypt/client.rb +++ b/lib/gitlab/lets_encrypt/client.rb @@ -34,14 +34,6 @@ module Gitlab acme_client.terms_of_service end - def enabled? - return false unless Feature.enabled?(:pages_auto_ssl) - - return false unless private_key - - Gitlab::CurrentSettings.lets_encrypt_terms_of_service_accepted - end - private def acme_client @@ -65,7 +57,7 @@ module Gitlab end def ensure_account - raise 'Acme integration is disabled' unless enabled? + raise 'Acme integration is disabled' unless ::Gitlab::LetsEncrypt.enabled? @acme_account ||= acme_client.new_account(contact: contact, terms_of_service_agreed: true) end |