add activation in license

This commit is contained in:
Yan
2017-11-15 19:10:56 +06:30
parent c2095b4a61
commit b1f98df4e0
3 changed files with 48 additions and 13 deletions

View File

@@ -10,11 +10,14 @@ class InstallController < BaseController
db_user = params[:db_user] db_user = params[:db_user]
db_password = params[:db_password] db_password = params[:db_password]
# Export for Key
aes = MyAesCrypt.new
aes_key, aes_iv = aes.export_key(lookup)
@license = License.new(ENV["SX_PROVISION_URL"])
@license.license_activate(aes_key, aes_iv, license_key)
end end
def lookup_domain def lookup_domain
if request.subdomain.present? && request.subdomain != "www" if request.subdomain.present? && request.subdomain != "www"
@license = current_license(ENV["SX_PROVISION_URL"], request.subdomain.downcase) @license = current_license(ENV["SX_PROVISION_URL"], request.subdomain.downcase)

View File

@@ -23,13 +23,13 @@ class License
# @params = { query: { device: "SX", token: SECRETS_CONFIG['provision_key'] } } # @params = { query: { device: "SX", token: SECRETS_CONFIG['provision_key'] } }
end end
def shop_code # def shop_code
if ( self.subdomain.length > 3) # if ( self.subdomain.length > 3)
return self.subdomain[0,3].upcase # return self.subdomain[0,3].upcase
else # else
return self.subdomain.upcase # return self.subdomain.upcase
end # end
end # end
def detail_with_local_cache(lookup, key, iv) def detail_with_local_cache(lookup, key, iv)
##Check from local redis - if available load local otherwise get from remote ##Check from local redis - if available load local otherwise get from remote
@@ -137,8 +137,18 @@ class License
# end # end
# License Activation # License Activation
def license_activate def license_activate (key, iv, license_key)
@params = { query: { lookup_type: self.server_mode, encrypted_key: key, iv_key: iv, license_key: license_key } }
response = self.class.get("/activate", @params)
@activate = response.parsed_response
Rails.logger.debug "License Remote Response - " + response.parsed_response.to_s
if (@activate["status"])
return create_license_file(@activate)
else
response = { "status": false, "message": "Activation Failed! Please contact code2lab call center!"}
end
end end
def verify_license def verify_license
@@ -216,6 +226,30 @@ class License
private private
# License File Creation
def create_license_file(response_data)
if check_license_file
delete_license_file
end
begin
# Licese File Creation
f = File.open("config/license.yml", "w")
f.write("name: #{response_data['name']}\n")
f.write("shopname: #{response_data['shopname']}\n")
f.write("dbhost: #{response_data['dbhost']}\n")
f.write("dbschema: #{response_data['dbschema']}\n")
f.write("dbusername: #{response_data['dbusername']}\n")
f.write("dbpassword: #{response_data['dbpassword']}\n")
f.write("api_token: #{response_data['api_token']}\n")
f.write("app_token: #{response_data['app_token']}\n")
f.close
rescue IOError
response = { "status": false, "message": "Can't create license file. Please contact code2lab call center!"}
end
response = { "status": true, "message": "License created"}
end
# Delete License File # Delete License File
def delete_license_file def delete_license_file
File.delete("config/license.yml") if File.exist?("config/license.yml") File.delete("config/license.yml") if File.exist?("config/license.yml")

View File

@@ -1,5 +1,4 @@
development: development:
server_mode: cloud
license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk
@@ -9,6 +8,5 @@ test:
# Do not keep production secrets in the repository, # Do not keep production secrets in the repository,
# instead read values from the environment. # instead read values from the environment.
production: production:
server_mode: cloud
license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk license_key: IAAXHpbSWAfvlWGYpDoXvZdmuRABNGk