add feature that adding cert verify for site

This commit is contained in:
chiu 2021-02-25 15:09:28 +08:00
parent 8feba06a13
commit febca7bf1b
5 changed files with 48 additions and 3 deletions

View File

@ -5,6 +5,22 @@ class Admin::SitePanelController < OrbitAdminController
@app_title = "client_management"
end
def update_cert_setting
site_params = params.require('site').permit!
if !site_params['cert_ver_file_content'].blank?
site_params['cert_ver_file_content'] = Nokogiri::HTML.parse(site_params['cert_ver_file_content'].gsub(/\r\n|\n/,'').gsub(/<br[ \/]*>/, "\n")).inner_text
end
if !site_params['cert_ver_location_path'].blank? && site_params['cert_ver_location_path'].start_with?('h')
site_params['cert_ver_location_path'] = URI(site_params['cert_ver_location_path']).path
end
site = SiteConstruct.where(id: site_params[:id]).first
site.update_attributes(site_params)
Thread.new do
system("bundle exec rake create_site:add_cert_ver_for_site['#{site_params[:id]}']")
end
redirect_to "/#{I18n.locale}/admin/site_panel/sites_list?server_name=#{site.server_type}"
end
def index
@site_construct = SiteConstruct.new
@module_app = ModuleApp.where(:title=>@app_title).first

View File

@ -42,6 +42,21 @@
<a href="<%=admin_site_panel_edit_site_path+"?id=#{site.id}&type=delete_from_list"%>" title="Delete <%=site.domain_name%> from list" class="btn btn-primary" data-id="<%=site.id.to_s%>">Delete from list</a>
<% if site.status == "finish" || site.status == "closed" %>
<a href="<%=admin_site_panel_path+"?copy_id=#{site.id}"%>" title="Copy site to another site." class="btn btn-primary">Copy site</a>
<a data-id="<%= site.id %>" title="edit cert setting." class="btn btn-primary open-cert-form">Edit cert Setting</a>
<div id="<%= "cert-form-#{site.id}" %>" class="cert-form" style="display: none;">
<%= form_for site, as: 'site', url: "/#{I18n.locale}/admin/site_panel/update_cert_setting",method: "post" do |f| %>
<div>
CSR txt path:&nbsp;
<%= f.text_field 'cert_ver_location_path',style: 'width: calc(100% - 8em);margin: 0;' %>
</div>
<div>
CSR txt content:&nbsp;
<%= f.text_area 'cert_ver_file_content',class: 'ckeditor',value: site.cert_ver_file_content.to_s.gsub("\n",'<br>') %>
</div>
<%= f.hidden_field 'id' %>
<%= f.submit 'edit',class: 'btn btn-primary' %>
<% end %>
</div>
<% end %>
</td>
</tr>
@ -249,5 +264,18 @@
}
});
<% end %>
$(".cert-form").dialog({
autoOpen: false,
show: "blind",
modal: true,
width: '90vw',
maxHeight: '80vh',
open: function() {
$(this).css("max-height", '80vh');
}
});
$('.open-cert-form').click(function(){
$('#cert-form-'+$(this).data('id')).dialog('open')
})
})
</script>

View File

@ -48,6 +48,7 @@ Rails.application.routes.draw do
get "site_panel/server_manager" => "site_panel#server_manager"
get "site_panel/edit_server_info" => "site_panel#edit_server_info"
post "site_panel/edit_server_info" => "site_panel#edit_server_info"
post "site_panel/update_cert_setting" => "site_panel#update_cert_setting"
resources :site_panel
end

View File

@ -18,11 +18,11 @@ namespace :create_site do
end
file_name = location_path.split('/')[-1]
file_path = "#{site_construct.path}/#{site_construct.site_name}/tmp/#{file_name}"
site_construct.cert_ver_added_text = " location #{location_path}{\n alias #{file_path};\n }"
site_construct.cert_ver_added_text = " location #{location_path}{#add_by_site_module\n alias #{file_path};\n }"
site_construct.save
server_array = nginx_config.scan(/^[ \t]*server[ \t]{(?:(?!server[ \t]*{).)+}/m)
server_array.each do |server|
tmp = server[0...-1] + site_construct.cert_ver_added_text + "\n }"
tmp = server[0...-1] + site_construct.cert_ver_added_text + "\n}"
nginx_config = nginx_config.sub(server,tmp)
end
cmd = "x='#{cert_ver_file_content}'; echo '#{@password}' | sudo -S sh -c \"echo '$x' > #{file_path}\"; unset x"

View File

@ -23,7 +23,7 @@ namespace :create_site do
end
def exec_command_by_user(session,command)
output = session.exec!(command)
return output
return output[0..-1]
end
def exec_ssh_command_by_sudo(session,command)
output = session.exec!("echo '#{@password}' | sudo -S #{command}")