diff options
author | Vladimir Shushlin <v.shushlin@gmail.com> | 2019-03-22 20:37:04 +0300 |
---|---|---|
committer | Vladimir Shushlin <v.shushlin@gmail.com> | 2019-04-09 13:48:32 +0300 |
commit | e4864db0e2c30ca98eea80e3a7998b0281008d42 (patch) | |
tree | e434c7f10094aa696732fd506ba311d6d1e78c35 | |
parent | 291684912af45f9a83d5a65676cdbcbc617353be (diff) | |
download | gitlab-ce-letsencrypt-stub.tar.gz |
Add simple prototype for pages auto ssl frontendletsencrypt-stub
-rw-r--r-- | app/controllers/projects/pages_domains_controller.rb | 4 | ||||
-rw-r--r-- | app/models/pages_domain.rb | 6 | ||||
-rw-r--r-- | app/views/projects/pages_domains/_form.html.haml | 33 |
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.") |