forked from saurabh/orbit4-5
101 lines
3.0 KiB
Ruby
101 lines
3.0 KiB
Ruby
require "uri"
|
|
require "net/http"
|
|
class Admin::StoreController < OrbitAdminController
|
|
layout false
|
|
before_action :store_url
|
|
def check_credentials
|
|
if current_site.store_token.nil?
|
|
render :json => {"success" => false}.to_json
|
|
else
|
|
render :json => {"success" => true}.to_json
|
|
end
|
|
end
|
|
|
|
def register_form
|
|
tt = current_site.title_translations
|
|
@site_title_values = {}
|
|
@site_title_values["en"] = tt["en"]
|
|
@site_title_values["zh_tw"] = tt["zh_tw"]
|
|
end
|
|
|
|
def template_store
|
|
|
|
end
|
|
|
|
def app_store
|
|
|
|
end
|
|
|
|
def send_email
|
|
params_to_send = {'store_token' => current_site.store_token}
|
|
uri = URI.parse(@store_url)
|
|
http = Net::HTTP.new(uri.host,uri.port)
|
|
request = Net::HTTP::Get.new("/site/send_email")
|
|
request.body = params_to_send.to_query
|
|
response = http.request(request)
|
|
data = JSON.parse(response.body)
|
|
render :json => data.to_json
|
|
%x(kill -s USR2 `cat tmp/pids/unicorn.pid`)
|
|
sleep 5
|
|
end
|
|
|
|
def authorize_default_modules
|
|
modules = ModuleApp.all
|
|
ids = modules.collect{|ma| ma.key}
|
|
store_token = Site.first.store_token rescue nil
|
|
if !store_token.nil?
|
|
module_apps = ModuleApp.all
|
|
params_to_send = {'store_token' => store_token, "apps" => ids}
|
|
uri = URI.parse(OrbitStore::URL)
|
|
http = Net::HTTP.new(uri.host,uri.port)
|
|
request = Net::HTTP::Post.new("/store/register_old_sites_modules")
|
|
request.body = params_to_send.to_query
|
|
response = http.request(request) rescue nil
|
|
if response.nil?
|
|
render :json => {"success" => false, "message" => "Could not connect to the store."}.to_json
|
|
else
|
|
data = JSON.parse(response.body)
|
|
if data["success"]
|
|
render :json => {"success" => true}.to_json
|
|
elsif !data["success"]
|
|
render :json => {"success" => false, "message" => data["message"]}.to_json
|
|
end
|
|
end
|
|
else
|
|
render :json => {"success" => false, "message" => "Cannot register modules, site is not registered with store."}.to_json
|
|
end
|
|
end
|
|
|
|
def check_permissions
|
|
params_to_send = {'store_token' => current_site.store_token}
|
|
uri = URI.parse(@store_url)
|
|
http = Net::HTTP.new(uri.host,uri.port)
|
|
request = Net::HTTP::Get.new("/site/permissions")
|
|
request.body = params_to_send.to_query
|
|
response = http.request(request)
|
|
data = JSON.parse(response.body)
|
|
if !data["success"] && data["error"] == "INVALID_SITE_TOKEN"
|
|
current_site.store_token = nil
|
|
current_site.save
|
|
end
|
|
render :json => data.to_json
|
|
end
|
|
|
|
def register_site
|
|
params_to_send = {'site_domain' => request.host_with_port, 'admin_email' => params["email"], "site_token" => current_site.uid, "site_title" => params[:site_title] }
|
|
uri = URI.parse(@store_url)
|
|
http = Net::HTTP.new(uri.host,uri.port)
|
|
request = Net::HTTP::Post.new("/register/site")
|
|
request.body = params_to_send.to_query
|
|
response = http.request(request)
|
|
data = JSON.parse(response.body)
|
|
render :json => data.to_json
|
|
end
|
|
|
|
|
|
private
|
|
def store_url
|
|
@store_url = OrbitStore::URL
|
|
# @store_url = "http://localhost:3000"
|
|
end
|
|
end |