official_module/app/controllers/client_sites_controller.rb

125 lines
3.6 KiB
Ruby

require 'openssl'
require 'base64'
class ClientSitesController < ApplicationController
def check_module_permissions
apps = params[:apps]
store_key = params[:store_token]
site = RegisteredSite.find_by(:uid => store_key) rescue nil
render :json => {"success" => false}.to_json and return if site.nil?
installed_modules = site.installed_modules
permissions = []
apps.each do |app|
# rm = RegisteredModule.find_by(:module_key => app) rescue nil
# if !rm.nil?
# im = installed_modules.where(:r_module => rm.id)
# if im.count > 0
# permissions << {"app" => app, "granted" => im.first.permission_granted}
# else
# permissions << {"app" => app, "granted" => false}
# end
# else
# permissions << {"app" => app, "granted" => false}
# end
permissions << {"app" => app, "granted" => true}
end
render :json => {"success" => true,"permissions" => permissions}.to_json
end
def get_csrf_token
render :json => {"token" => form_authenticity_token}.to_json
end
def widget_download_url
rdw = RegisteredDesktopWidget.find_by(:widget_key => params[:widget_uid]) rescue nil
if !rdw.nil?
if !rdw.widget.nil?
render :json => {"success" => true,"url" => rdw.widget.url}
else
render :json => {"success" => false}
end
else
render :json => {"success" => false}
end
end
def get_desktop_widget_list
widget_list = []
rdws = RegisteredDesktopWidget.all.approve
rdws.each do |rdw|
t = {
"description" => "This is description",
"author" => (User.find(rdw.create_user_id).name rescue User.find(rdw.create_user_id).user_name),
"widgetName" => rdw.name,
"icon" => "http://" + request.host_with_port + "#{rdw.icon.thumb.url}",
"_id" => rdw.widget_key
}
widget_list << t
end
render :json => {"widgetList" => widget_list}.to_json
end
def register_old_sites_modules
apps = params[:apps]
store_key = params[:store_token]
site = RegisteredSite.find_by(:uid => store_key)
response = {}
if site.nil?
response["success"] = false
response["message"] = "Cannot verify site credentials. Make sure the site is registered."
else
apps.each do |app|
rm = RegisteredModule.find_by(:module_key => app) rescue nil
if !rm.nil?
im = InstalledModule.where(:r_module => rm.id, :registered_site_id => site.id)
if im.count == 0
im = InstalledModule.new
im.r_module = rm.id
im.permission_granted = true
im.registered_site = site
im.save
end
end
end
response["success"] = true
end
render :json => response.to_json
end
def check_for_rulingcom
private_key_file = File.join(Rails.root, "store.pem")
password = 'Rulingcom.com_Bjo4xjp6'
private_key = OpenSSL::PKey::RSA.new(File.read(private_key_file),password)
string = private_key.private_decrypt(Base64.decode64(params[:encpas]))
mp = MasterPassword.first rescue nil
if !mp.nil? && mp.authenticate(string)
render :json => {"success" => true}.to_json
else
render :json => {"success" => false}.to_json
end
end
def check_server_ability
site_num = params[:site_num]
store_token = params[:store_token]
site_name = params[:site_name]
site_url = params[:site_url]
manager = ServerAbilityManager.where(store_token: store_token).first
ability = manager.max_site_ability rescue 0
site_ip = request.remote_ip
update_params = {
site_ip: site_ip,
site_num: site_num,
site_url: site_url
}
if manager.nil?
update_params = update_params.merge({store_token: store_token,
site_name: site_name})
ServerAbilityManager.create(update_params)
else
manager.update_attributes(update_params)
end
render :json => {ability: ability}
end
end