summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Shushlin <v.shushlin@gmail.com>2019-03-22 20:37:04 +0300
committerVladimir Shushlin <v.shushlin@gmail.com>2019-04-09 13:48:32 +0300
commite4864db0e2c30ca98eea80e3a7998b0281008d42 (patch)
treee434c7f10094aa696732fd506ba311d6d1e78c35
parent291684912af45f9a83d5a65676cdbcbc617353be (diff)
downloadgitlab-ce-letsencrypt-stub.tar.gz
Add simple prototype for pages auto ssl frontendletsencrypt-stub
-rw-r--r--app/controllers/projects/pages_domains_controller.rb4
-rw-r--r--app/models/pages_domain.rb6
-rw-r--r--app/views/projects/pages_domains/_form.html.haml33
3 files changed, 32 insertions, 11 deletions
diff --git a/app/controllers/projects/pages_domains_controller.rb b/app/controllers/projects/pages_domains_controller.rb
index 58b1bc54181..1a67b62efac 100644
--- a/app/controllers/projects/pages_domains_controller.rb
+++ b/app/controllers/projects/pages_domains_controller.rb
@@ -69,7 +69,9 @@ class Projects::PagesDomainsController < Projects::ApplicationController
end
def update_params
- params.require(:pages_domain).permit(:key, :certificate)
+ permitted_params = [:key, :certificate]
+ permitted_params << :auto_ssl_enabled if Feature.enabled?(:pages_auto_ssl)
+ params.require(:pages_domain).permit(permitted_params)
end
# rubocop: disable CodeReuse/ActiveRecord
diff --git a/app/models/pages_domain.rb b/app/models/pages_domain.rb
index 391ebacb2d6..1680344ec71 100644
--- a/app/models/pages_domain.rb
+++ b/app/models/pages_domain.rb
@@ -134,6 +134,12 @@ class PagesDomain < ApplicationRecord
"#{VERIFICATION_KEY}=#{verification_code}"
end
+ def ssl_status_message
+ return unless Feature.enabled?(:pages_auto_ssl)
+
+ "Your ssl certificate has been requested"
+ end
+
private
def set_verification_code
diff --git a/app/views/projects/pages_domains/_form.html.haml b/app/views/projects/pages_domains/_form.html.haml
index b7b46c56c37..d5f7b0bc9b0 100644
--- a/app/views/projects/pages_domains/_form.html.haml
+++ b/app/views/projects/pages_domains/_form.html.haml
@@ -1,8 +1,12 @@
-- if @domain.errors.any?
+- if @domain.errors.any? || @domain.ssl_status_message
#error_explanation
- .alert.alert-danger
- - @domain.errors.full_messages.each do |msg|
- %p= msg
+ - if @domain.errors.any?
+ .alert.alert-danger
+ - @domain.errors.full_messages.each do |msg|
+ %p= msg
+ - if @domain.ssl_status_message
+ .alert.alert-warning
+ %p= @domain.ssl_status_message
.form-group.row
= f.label :domain, class: 'col-form-label col-sm-2' do
@@ -11,6 +15,14 @@
= f.text_field :domain, required: true, autocomplete: 'off', class: 'form-control', disabled: @domain.persisted?
- if Gitlab.config.pages.external_https
+ - if Feature.enabled?(:pages_auto_ssl)
+ .form-group.row
+ = f.label :auto_ssl_enabled, class: 'col-form-label col-sm-2' do
+ = _("Auto SSL enabled")
+ .col-sm-10
+ = f.check_box :auto_ssl_enabled, class: 'form-control'
+ %span.help-inline= _("Generate ssl certificate by Let's Encrypt")
+
.form-group.row
= f.label :certificate, class: 'col-form-label col-sm-2' do
= _("Certificate (PEM)")
@@ -18,12 +30,13 @@
= f.text_area :certificate, rows: 5, class: 'form-control'
%span.help-inline= _("Upload a certificate for your domain with all intermediates")
- .form-group.row
- = f.label :key, class: 'col-form-label col-sm-2' do
- = _("Key (PEM)")
- .col-sm-10
- = f.text_area :key, rows: 5, class: 'form-control'
- %span.help-inline= _("Upload a private key for your certificate")
+ - unless @domain.auto_ssl_enabled?
+ .form-group.row
+ = f.label :key, class: 'col-form-label col-sm-2' do
+ = _("Key (PEM)")
+ .col-sm-10
+ = f.text_area :key, rows: 5, class: 'form-control'
+ %span.help-inline= _("Upload a private key for your certificate")
- else
.nothing-here-block
= _("Support for custom certificates is disabled. Ask your system's administrator to enable it.")