diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fcca34a7..93652e52 100755 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -44,9 +44,8 @@ class ApplicationController < ActionController::Base end end - def current_license(url) + def current_license(url) @license = License.new(url) - if (@license.detail_with_local_file() == true) puts "RUN SAY BYAR" else diff --git a/app/controllers/base_controller.rb b/app/controllers/base_controller.rb index 9f0914c4..1bf5b4d4 100755 --- a/app/controllers/base_controller.rb +++ b/app/controllers/base_controller.rb @@ -1,4 +1,5 @@ class BaseController < ActionController::Base layout "installation" protect_from_forgery with: :exception + end diff --git a/app/models/license.rb b/app/models/license.rb index 0f2fd0ed..f5d7597a 100755 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -69,11 +69,32 @@ class License # For Local System def detail_with_local_file() - has_license = true # verify_license() + aes = MyAesCrypt.new + aes_key, aes_iv = aes.export_key(lookup) + renewal_date_str = read_license("renewable_date") - if has_license - puts "VERIFIED" + # ##Check from local redis - if available load local otherwise get from remote + # renewable_date = "renewable_date:#{renewal_date_str}" + + # ##Get redis connection from connection pool + # redis = Redis.new + # cache_renewable_date = redis.get(renewable_date) + # if cache_renewable_date.nil? + # redis = Redis.new + # redis.set(renewable_date, Marshal.dump(@license)) + # else + # get_renewable_date = Marshal.load(cache_renewable_date) + if check_expiring(renewal_date_str) + return true + else + has_license = verify_license() + + if has_license + puts "VERIFIED" + return true + end end + # end end # License Activation @@ -115,6 +136,12 @@ class License return false end + # Check Expired before 30 days + def check_expiring(renewal_date_str) + renewal_date = DateTime.parse(renewal_date_str) + renewal_date > Date.today.advance(:days => 30) + end + # Check License expired date from PROVISION SERVER def check_expired(renewal_date_str) renewal_date = DateTime.parse(renewal_date_str) @@ -136,7 +163,7 @@ class License if File.exist?("config/license.yml") File.open("config/license.yml").each do |line| if line.include? (key) - decrypted_line_array = line.split(": ") + decrypted_line_array = line.split(": ") decrypted_line = AESCrypt.decrypt_data(decode_str(decrypted_line_array[1]), decode_str(ENV['AES_KEY']), decode_str(ENV['AES_IV']), ENV['CIPHER_TYPE']) end end @@ -185,6 +212,9 @@ class License f.puts("dbpassword: #{response_data['dbpassword']}") f.puts("api_token: #{response_data['api_token']}") f.puts("app_token: #{response_data['app_token']}") + f.puts("plan_sku: #{response_data['plan_sku']}") + f.puts("renewable_date: #{response_data['renewable_date']}") + f.puts("plan_name: #{response_data['plan_name']}") end rescue IOError response = { "status": false, "message": "Activation is success but something is wrong. \n Please contact code2lab call center!"} diff --git a/config/license.yml b/config/license.yml index 4a5c6b90..b96a0256 100644 --- a/config/license.yml +++ b/config/license.yml @@ -10,7 +10,6 @@ dbusername: LapN+Geriht8yk866FxNiQ== dbpassword: QtboWZ4ATE05vvYw6J+Uqw== api_token: nGyMizHtoVEFYCjSVEFJuzkxuBJwSsH app_token: QUdPwSakcsnuVLdfkXgGHhPMiIOcSSfaVwQyA - -plan_sku: 001 -renewable_date: 2018-12-14 -plan_name: Community +plan_sku: 9+83FZetcbLZi6COG5PbSw== +renewable_date: shztSYIsNmM9nlHkR/4exQ== +plan_name: LapN+Geriht8yk866FxNiQ== diff --git a/config/secrets.yml b/config/secrets.yml index 23c287ba..af242402 100755 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -13,7 +13,7 @@ development: secret_key_base: b61d85f8ed2a1a9e0eeece3443b3e8f838d002cc1d9f32115d8e93db920e2957adfedc57501d44741211538f3108b742cdeada87d5bfae796c53da1f90a3cd61 sx_provision_url: 192.168.1.147:3002/api #connect.smartsales.asia/api #provision.zsai.ws/api - server_mode: cloud + server_mode: application cipher_type: AES-256-CBC sx_key: Wh@t1$C2L aes_key: <%= ENV['AES_KEY'] %>