Add api and api setting feature.
This commit is contained in:
parent
6d33769ee6
commit
1d7149180c
|
@ -4,6 +4,49 @@ class Admin::SitePanelController < OrbitAdminController
|
||||||
super
|
super
|
||||||
@app_title = "client_management"
|
@app_title = "client_management"
|
||||||
end
|
end
|
||||||
|
def can_use
|
||||||
|
ClientManagerSetting.create if ClientManagerSetting.count == 0
|
||||||
|
setting = ClientManagerSetting.first
|
||||||
|
if setting.enable_api && setting.api_key == params[:api_key]
|
||||||
|
@allow_api = true
|
||||||
|
if params[:id].blank? && params[:domain_name].present?
|
||||||
|
params[:id] = SiteConstruct.where(:domain_name=>/#{params[:domain_name].gsub(".","\\.")}/).first.id rescue nil
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def current_user
|
||||||
|
if @allow_api
|
||||||
|
return User.where(:user_name=>'admin').first
|
||||||
|
else
|
||||||
|
return super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def authenticate_user
|
||||||
|
ClientManagerSetting.create if ClientManagerSetting.count == 0
|
||||||
|
setting = ClientManagerSetting.first
|
||||||
|
if setting.enable_api && setting.api_key == params[:api_key]
|
||||||
|
@allow_api = true
|
||||||
|
if params[:id].blank? && params[:domain_name].present?
|
||||||
|
params[:id] = SiteConstruct.where(:domain_name=>/#{params[:domain_name].gsub(".","\\.")}/).first.id rescue nil
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def setting
|
||||||
|
ClientManagerSetting.create if ClientManagerSetting.count == 0
|
||||||
|
@setting = ClientManagerSetting.first
|
||||||
|
end
|
||||||
|
def update_setting
|
||||||
|
setting_params = params.require(:client_manager_setting).permit!
|
||||||
|
setting = ClientManagerSetting.first
|
||||||
|
setting.update_attributes(setting_params)
|
||||||
|
redirect_to :back
|
||||||
|
end
|
||||||
def upload_cert
|
def upload_cert
|
||||||
@site_cert = SiteCert.new
|
@site_cert = SiteCert.new
|
||||||
end
|
end
|
||||||
|
@ -225,7 +268,7 @@ class Admin::SitePanelController < OrbitAdminController
|
||||||
Thread.new do
|
Thread.new do
|
||||||
system("bundle exec rake exec_commands:exec_commands[#{params[:id]},,close_site]")
|
system("bundle exec rake exec_commands:exec_commands[#{params[:id]},,close_site]")
|
||||||
end
|
end
|
||||||
elsif params[:type] == 'open'
|
elsif params[:type] == 'open' || params[:type] == 'restart'
|
||||||
Thread.new do
|
Thread.new do
|
||||||
system("bundle exec rake exec_commands:exec_commands[#{params[:id]},,open_site,,#{params[:env]}]")
|
system("bundle exec rake exec_commands:exec_commands[#{params[:id]},,open_site,,#{params[:env]}]")
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
class ClientManagerSetting
|
||||||
|
include Mongoid::Document
|
||||||
|
include Mongoid::Timestamps
|
||||||
|
field :enable_api, type: Boolean, default: false
|
||||||
|
field :api_key, type: String, default: "client-manager-api-key"
|
||||||
|
end
|
|
@ -0,0 +1,42 @@
|
||||||
|
<% content_for :page_specific_css do %>
|
||||||
|
<%= stylesheet_link_tag "lib/main-forms" %>
|
||||||
|
<% end %>
|
||||||
|
<% content_for :page_specific_javascript do %>
|
||||||
|
<% end %>
|
||||||
|
<%= form_for @setting, :url => {:action=>"update_setting"}, :html => {:class => 'form-horizontal main-forms'} do |f| %>
|
||||||
|
<fieldset>
|
||||||
|
<!-- Input Area -->
|
||||||
|
<div class="input-area">
|
||||||
|
|
||||||
|
<!-- Module Tabs -->
|
||||||
|
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
||||||
|
<ul class="nav nav-pills module-nav">
|
||||||
|
<li class="active">
|
||||||
|
<a href="#basic" data-toggle="tab"><%= t(:basic) %></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- Module -->
|
||||||
|
<div class="tab-content module-area">
|
||||||
|
<!-- Basic Module -->
|
||||||
|
<div class="tab-pane fade in active" id="basic">
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.label :enable_api , t("client_management.enable_api"), :class => "control-label muted" %>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.check_box :enable_api %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.label :api_key , t("client_management.api_key"), :class => "control-label muted" %>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.text_field :api_key %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-actions">
|
||||||
|
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<% end %>
|
|
@ -7,6 +7,9 @@ en:
|
||||||
upload_cert: Upload Cert
|
upload_cert: Upload Cert
|
||||||
cert_management: Cert Management
|
cert_management: Cert Management
|
||||||
client_management:
|
client_management:
|
||||||
|
enable_api: Enable API
|
||||||
|
api_key: API Key
|
||||||
|
setting: Setting
|
||||||
start_site_in_env: "Start site in %{env}"
|
start_site_in_env: "Start site in %{env}"
|
||||||
upgrade_site: "Upgrade site"
|
upgrade_site: "Upgrade site"
|
||||||
bundle_update: "Bundle update"
|
bundle_update: "Bundle update"
|
||||||
|
|
|
@ -7,6 +7,9 @@ zh_tw:
|
||||||
upload_cert: 上傳憑證
|
upload_cert: 上傳憑證
|
||||||
cert_management: 憑證管理
|
cert_management: 憑證管理
|
||||||
client_management:
|
client_management:
|
||||||
|
enable_api: 開啟API
|
||||||
|
api_key: API Key
|
||||||
|
setting: 設定
|
||||||
start_site_in_env: "開啟網站為%{env}"
|
start_site_in_env: "開啟網站為%{env}"
|
||||||
upgrade_site: 更新網站
|
upgrade_site: 更新網站
|
||||||
bundle_update: "Bundle update"
|
bundle_update: "Bundle update"
|
||||||
|
|
|
@ -36,6 +36,8 @@ Rails.application.routes.draw do
|
||||||
get "contracts"
|
get "contracts"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
get "site_panel/setting" => "site_panel#setting"
|
||||||
|
patch "site_panel/update_setting" => "site_panel#update_setting"
|
||||||
get "site_panel/edit_site" => "site_panel#edit_site"
|
get "site_panel/edit_site" => "site_panel#edit_site"
|
||||||
post "site_panel/edit_site" => "site_panel#edit_site"
|
post "site_panel/edit_site" => "site_panel#edit_site"
|
||||||
get "site_panel/site_infos" => "site_panel#site_infos"
|
get "site_panel/site_infos" => "site_panel#site_infos"
|
||||||
|
|
|
@ -38,6 +38,11 @@ module ClientManagement
|
||||||
:active_for_action=>{'admin/client_managements'=>"contracts"},
|
:active_for_action=>{'admin/client_managements'=>"contracts"},
|
||||||
:available_for => 'admin'
|
:available_for => 'admin'
|
||||||
|
|
||||||
|
context_link 'client_management.setting',
|
||||||
|
:link_path=>"admin_site_panel_setting_path" ,
|
||||||
|
:priority=>1,
|
||||||
|
:active_for_action=>{'admin/site_panel'=>"setting"},
|
||||||
|
:available_for => 'admin'
|
||||||
context_link 'client_management.cert_management',
|
context_link 'client_management.cert_management',
|
||||||
:link_path=>"cert_management_admin_site_panel_index_path" ,
|
:link_path=>"cert_management_admin_site_panel_index_path" ,
|
||||||
:priority=>1,
|
:priority=>1,
|
||||||
|
|
Loading…
Reference in New Issue