From cd95d1d5c9e82c52ec3a43d831e8d6fd8104b917 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 21 Feb 2018 10:12:05 +0630 Subject: [PATCH 1/5] license test --- app/controllers/application_controller.rb | 13 +++++++------ app/controllers/concerns/login_verification.rb | 6 +++--- app/models/license.rb | 2 +- config/secrets.yml | 4 ++-- config/shops.json | 17 ++++++++++++++++- 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0966a573..36d3ab43 100755 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -27,8 +27,9 @@ class ApplicationController < ActionController::Base from = request.subdomain.downcase + "." + request.domain.downcase @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase if (!@license.nil?) - # logger.info "Location - " + @license.name + # logger.info "Location - " + @license.name ActiveRecord::Base.establish_connection(website_connection(@license)) + authentication # logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema else # reconnect_default_db @@ -38,11 +39,11 @@ class ApplicationController < ActionController::Base end else # check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/app/controllers/concerns/login_verification.rb b/app/controllers/concerns/login_verification.rb index ab5823de..6e9cff8d 100755 --- a/app/controllers/concerns/login_verification.rb +++ b/app/controllers/concerns/login_verification.rb @@ -2,7 +2,7 @@ module LoginVerification extend ActiveSupport::Concern included do - before_action :authenticate + # before_action :authenticate helper_method :current_company,:current_login_employee end @@ -10,7 +10,7 @@ module LoginVerification protected # Authenticate the user with token based authentication - def authenticate + def authenticate authenticate_session_token || render_unauthorized end @@ -18,7 +18,7 @@ module LoginVerification token = session[:session_token] if (token) #@current_user = User.find_by(api_key: token) - Rails.logger.debug "token - " + token.to_s + #Rails.logger.debug "token - " + token.to_s @user = Employee.authenticate_by_token(token) if @user diff --git a/app/models/license.rb b/app/models/license.rb index d025e349..ddb9a8c0 100755 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -33,7 +33,7 @@ class License ##Get redis connection from connection pool redis = Redis.new cache_license = redis.get(cache_key) - + Rails.logger.info "Cache key - " + cache_key.to_s if cache_license.nil? ##change the d/e key diff --git a/config/secrets.yml b/config/secrets.yml index a0220639..286c1ade 100755 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -12,8 +12,8 @@ development: secret_key_base: b61d85f8ed2a1a9e0eeece3443b3e8f838d002cc1d9f32115d8e93db920e2957adfedc57501d44741211538f3108b742cdeada87d5bfae796c53da1f90a3cd61 - sx_provision_url: connect.smartsales.dev/api #connect.smartsales.asia/api #provision.zsai.ws/api - server_mode: application + sx_provision_url: 192.168.1.125:3002/api #connect.smartsales.dev/api #connect.smartsales.asia/api #provision.zsai.ws/api + server_mode: cloud cipher_type: AES-256-CBC sx_key: Wh@t1$C2L diff --git a/config/shops.json b/config/shops.json index 268c73f0..dc0e3b46 100644 --- a/config/shops.json +++ b/config/shops.json @@ -1,3 +1,18 @@ { - "data": [] + "data": [ + { + "lookup": "chromis-1.zsai.ws", + "value": { + "key": "877eY5iPvpVzaYnIkc2FgIy0U85FtqpTpQGqoM/RCG0=\n", + "iv": "qSVQaKzOm3TYmRP3DhHdig==\n" + } + }, + { + "lookup": "gw2a-13.zsai.dev", + "value": { + "key": "R0uRkGlvCD5DGaPV4SkhGlwaMR0ohYBBmNna+tpRXMc=\n", + "iv": "AP5iuLM36oJmnvLsWCo9+Q==\n" + } + } + ] } From 3d2d304654e86f5a986e2beb0e3b231be5b86086 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 21 Feb 2018 16:30:14 +0630 Subject: [PATCH 2/5] license update for token --- app/controllers/application_controller.rb | 75 +---------------- app/controllers/base_crm_controller.rb | 2 +- app/controllers/base_inventory_controller.rb | 2 +- app/controllers/base_oqs_controller.rb | 2 +- app/controllers/base_origami_controller.rb | 2 +- app/controllers/base_report_controller.rb | 2 +- app/controllers/base_waiter_controller.rb | 2 +- .../concerns/license_verification.rb | 83 +++++++++++++++++++ .../concerns/login_verification.rb | 9 +- app/controllers/home_controller.rb | 4 +- 10 files changed, 101 insertions(+), 82 deletions(-) create mode 100644 app/controllers/concerns/license_verification.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9eb08f5f..3c061feb 100755 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,10 +1,11 @@ class ApplicationController < ActionController::Base - include LoginVerification + include LicenseVerification + #before_action :check_installation protect_from_forgery with: :exception # lookup domain for db from provision - before_action :lookup_domain, :set_locale + before_action :set_locale helper_method :current_company,:current_login_employee,:current_user # alias_method :current_user, :current_login_employee,:current_user @@ -22,68 +23,6 @@ class ApplicationController < ActionController::Base { locale: I18n.locale } end - def lookup_domain - if request.subdomain.present? && request.subdomain != "www" - from = request.subdomain.downcase + "." + request.domain.downcase - @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase - if (!@license.nil?) - # logger.info "Location - " + @license.name - ActiveRecord::Base.establish_connection(website_connection(@license)) - authentication - # logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema - else - # reconnect_default_db - logger.info 'License is nil' - # redirect_to root_url(:host => request.domain) + "store_error" - render :json => [{ status: false, message: 'Invalid Access!'}] - end - else - # check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end - end - end - - def current_license(url) - @license = License.new(url) - flag = @license.detail_with_local_file() - if (flag == 0) - flash[:notice] = 'Expired or No License!' - elsif (flag == 2) - flash[:notice] = 'Expiring! Please, License extend...' - else - puts "RUN SAY BYAR" - end - end - - def cache_license(url, lookup) - @license = License.new(url, lookup) - - if (@license.detail_with_local_cache(lookup) == true) - return @license - else - return nil - end - end - - def website_connection(license) - default_connection.dup.update(:host => license.dbhost, :database => license.dbschema.to_s.downcase, - :username => license.dbusername, :password => license.dbpassword) - - end - - def reconnect_default_db - ActiveRecord::Base.establish_connection(Rails.env) - end - - # Regular database.yml configuration hash - def default_connection - @default_config ||= ActiveRecord::Base.connection.instance_variable_get("@config").dup - end - rescue_from CanCan::AccessDenied do |exception| flash[:warning] = exception.message redirect_to root_path @@ -112,14 +51,6 @@ class ApplicationController < ActionController::Base @employee = Employee.find_by_token_session(session[:session_token]) end end - - private - def check_license - if License.check_license_file - return true - end - return false - end end diff --git a/app/controllers/base_crm_controller.rb b/app/controllers/base_crm_controller.rb index e66c67b9..ff44bbbf 100755 --- a/app/controllers/base_crm_controller.rb +++ b/app/controllers/base_crm_controller.rb @@ -1,5 +1,5 @@ class BaseCrmController < ActionController::Base - include LoginVerification + include LicenseVerification layout "CRM" #before_action :check_installation diff --git a/app/controllers/base_inventory_controller.rb b/app/controllers/base_inventory_controller.rb index 4059ac25..0ef47129 100755 --- a/app/controllers/base_inventory_controller.rb +++ b/app/controllers/base_inventory_controller.rb @@ -1,5 +1,5 @@ class BaseInventoryController < ActionController::Base - include LoginVerification + include LicenseVerification layout "inventory" #before_action :check_installation diff --git a/app/controllers/base_oqs_controller.rb b/app/controllers/base_oqs_controller.rb index db9f8231..4fc58402 100755 --- a/app/controllers/base_oqs_controller.rb +++ b/app/controllers/base_oqs_controller.rb @@ -1,5 +1,5 @@ class BaseOqsController < ActionController::Base - include LoginVerification + include LicenseVerification layout "OQS" #before_action :check_installation diff --git a/app/controllers/base_origami_controller.rb b/app/controllers/base_origami_controller.rb index ec415bad..318c40f2 100755 --- a/app/controllers/base_origami_controller.rb +++ b/app/controllers/base_origami_controller.rb @@ -1,5 +1,5 @@ class BaseOrigamiController < ActionController::Base - include LoginVerification + include LicenseVerification layout "origami" # before_action :checkin_process diff --git a/app/controllers/base_report_controller.rb b/app/controllers/base_report_controller.rb index af9ec4fc..a164c499 100755 --- a/app/controllers/base_report_controller.rb +++ b/app/controllers/base_report_controller.rb @@ -1,5 +1,5 @@ class BaseReportController < ActionController::Base - include LoginVerification + include LicenseVerification layout "application" #before_action :check_installation diff --git a/app/controllers/base_waiter_controller.rb b/app/controllers/base_waiter_controller.rb index e86433dc..38749af0 100755 --- a/app/controllers/base_waiter_controller.rb +++ b/app/controllers/base_waiter_controller.rb @@ -1,5 +1,5 @@ class BaseWaiterController < ActionController::Base - include LoginVerification + include LicenseVerification layout "waiter" #before_action :check_installation diff --git a/app/controllers/concerns/license_verification.rb b/app/controllers/concerns/license_verification.rb new file mode 100644 index 00000000..bfa40f03 --- /dev/null +++ b/app/controllers/concerns/license_verification.rb @@ -0,0 +1,83 @@ +module LicenseVerification + extend ActiveSupport::Concern + + included do + before_action :lookup_domain + end + + protected + def lookup_domain + if request.subdomain.present? && request.subdomain != "www" + from = request.subdomain.downcase + "." + request.domain.downcase + @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase + if (!@license.nil?) + # logger.info "Location - " + @license.name + ActiveRecord::Base.establish_connection(website_connection(@license)) + authenticate_session_token + # logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema + else + # reconnect_default_db + logger.info 'License is nil' + # redirect_to root_url(:host => request.domain) + "store_error" + render :json => [{ status: false, message: 'Invalid Access!'}] + end + else + # check for license file + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end + end + end + + def authenticate_session_token + token = session[:session_token] + if (token) + #@current_user = User.find_by(api_key: token) + #Rails.logger.debug "token - " + token.to_s + + @user = Employee.authenticate_by_token(token) + if !@user + flash[:notice] = 'Invalid Access!' + end + end + end + + def current_license(url) + @license = License.new(url) + flag = @license.detail_with_local_file() + if (flag == 0) + flash[:notice] = 'Expired or No License!' + elsif (flag == 2) + flash[:notice] = 'Expiring! Please, License extend...' + else + puts "RUN SAY BYAR" + end + end + + def cache_license(url, lookup) + @license = License.new(url, lookup) + + if (@license.detail_with_local_cache(lookup) == true) + return @license + else + return nil + end + end + + def website_connection(license) + default_connection.dup.update(:host => license.dbhost, :database => license.dbschema.to_s.downcase, + :username => license.dbusername, :password => license.dbpassword) + + end + + def reconnect_default_db + ActiveRecord::Base.establish_connection(Rails.env) + end + + # Regular database.yml configuration hash + def default_connection + @default_config ||= ActiveRecord::Base.connection.instance_variable_get("@config").dup + end +end \ No newline at end of file diff --git a/app/controllers/concerns/login_verification.rb b/app/controllers/concerns/login_verification.rb index 6e9cff8d..7ddf3cec 100755 --- a/app/controllers/concerns/login_verification.rb +++ b/app/controllers/concerns/login_verification.rb @@ -2,9 +2,8 @@ module LoginVerification extend ActiveSupport::Concern included do - # before_action :authenticate + before_action :authenticate helper_method :current_company,:current_login_employee - end @@ -24,6 +23,8 @@ module LoginVerification if @user return true #Maybe log - login? + else + flash[:notice] = 'Invalid Access!' end end end @@ -50,6 +51,10 @@ module LoginVerification end private + def check_license + License.check_license_file + end + def check_installation if current_company.nil? redirect_to install_path diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 25fb0d70..5afd383a 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,6 +1,6 @@ -class HomeController < ApplicationController +class HomeController < ApplicationController # layout "application", except: [:index, :show] - skip_before_action :authenticate, only: [:index, :show, :create, :update, :destroy] + skip_before_action only: [:index, :show, :create, :update, :destroy] def index # @employees = Employee.all_emp_except_waiter.order("name asc") From 4552a4a9acec353a55bf522826d84e91cface31f Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 21 Feb 2018 16:42:19 +0630 Subject: [PATCH 3/5] license update, base controllers extends app controller --- app/controllers/base_crm_controller.rb | 3 +-- app/controllers/base_inventory_controller.rb | 3 +-- app/controllers/base_oqs_controller.rb | 3 +-- app/controllers/base_origami_controller.rb | 3 +-- app/controllers/base_report_controller.rb | 3 +-- app/controllers/base_waiter_controller.rb | 5 +---- 6 files changed, 6 insertions(+), 14 deletions(-) diff --git a/app/controllers/base_crm_controller.rb b/app/controllers/base_crm_controller.rb index ff44bbbf..5c412fcf 100755 --- a/app/controllers/base_crm_controller.rb +++ b/app/controllers/base_crm_controller.rb @@ -1,5 +1,4 @@ -class BaseCrmController < ActionController::Base - include LicenseVerification +class BaseCrmController < ApplicationController layout "CRM" #before_action :check_installation diff --git a/app/controllers/base_inventory_controller.rb b/app/controllers/base_inventory_controller.rb index 0ef47129..f44747d3 100755 --- a/app/controllers/base_inventory_controller.rb +++ b/app/controllers/base_inventory_controller.rb @@ -1,5 +1,4 @@ -class BaseInventoryController < ActionController::Base - include LicenseVerification +class BaseInventoryController < ApplicationController layout "inventory" #before_action :check_installation diff --git a/app/controllers/base_oqs_controller.rb b/app/controllers/base_oqs_controller.rb index 4fc58402..f1f2831a 100755 --- a/app/controllers/base_oqs_controller.rb +++ b/app/controllers/base_oqs_controller.rb @@ -1,5 +1,4 @@ -class BaseOqsController < ActionController::Base - include LicenseVerification +class BaseOqsController < ApplicationController layout "OQS" #before_action :check_installation diff --git a/app/controllers/base_origami_controller.rb b/app/controllers/base_origami_controller.rb index 318c40f2..58d9b801 100755 --- a/app/controllers/base_origami_controller.rb +++ b/app/controllers/base_origami_controller.rb @@ -1,5 +1,4 @@ -class BaseOrigamiController < ActionController::Base - include LicenseVerification +class BaseOrigamiController < ApplicationController layout "origami" # before_action :checkin_process diff --git a/app/controllers/base_report_controller.rb b/app/controllers/base_report_controller.rb index a164c499..f7551f22 100755 --- a/app/controllers/base_report_controller.rb +++ b/app/controllers/base_report_controller.rb @@ -1,5 +1,4 @@ -class BaseReportController < ActionController::Base - include LicenseVerification +class BaseReportController < ApplicationController layout "application" #before_action :check_installation diff --git a/app/controllers/base_waiter_controller.rb b/app/controllers/base_waiter_controller.rb index 38749af0..248e32a6 100755 --- a/app/controllers/base_waiter_controller.rb +++ b/app/controllers/base_waiter_controller.rb @@ -1,9 +1,6 @@ -class BaseWaiterController < ActionController::Base - include LicenseVerification +class BaseWaiterController < ApplicationController layout "waiter" #before_action :check_installation protect_from_forgery with: :exception - - end From 643a9d71bea9e532dc73f5f4f9844a8726cdde94 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 21 Feb 2018 17:04:45 +0630 Subject: [PATCH 4/5] remove skip before action in home controller --- app/controllers/home_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 5afd383a..ea411fa0 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,6 +1,6 @@ class HomeController < ApplicationController # layout "application", except: [:index, :show] - skip_before_action only: [:index, :show, :create, :update, :destroy] + # skip_before_action only: [:index, :show, :create, :update, :destroy] def index # @employees = Employee.all_emp_except_waiter.order("name asc") From 77a66d726bc48a7c5d8be7c12728c1d0a9a5621e Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Fri, 23 Feb 2018 14:53:08 +0630 Subject: [PATCH 5/5] update foc and void overall add remark --- .../origami/payments_controller.rb | 5 +- app/controllers/origami/void_controller.rb | 6 +- app/models/sale_audit.rb | 12 +- app/models/sale_payment.rb | 6 +- app/views/origami/home/show.html.erb | 30 +++- app/views/origami/payments/show.html.erb | 156 +++++++++++++----- 6 files changed, 162 insertions(+), 53 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 199325e9..317743dd 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -87,7 +87,7 @@ class Origami::PaymentsController < BaseOrigamiController #end rounding adjustment sale_payment = SalePayment.new - sale_payment.process_payment(saleObj, @user, cash, "cash") + sale_payment.process_payment(saleObj, @usercurrent_user.name, cash, "cash") render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error "}) rebate_amount = nil @@ -300,6 +300,7 @@ class Origami::PaymentsController < BaseOrigamiController cash = params[:cash] sale_id = params[:sale_id] sub_total = params[:sub_total] + remark = params[:remark] member_info = nil rebate_amount = nil current_balance = nil @@ -313,7 +314,7 @@ class Origami::PaymentsController < BaseOrigamiController end sale_payment = SalePayment.new - sale_payment.process_payment(saleObj, @user, cash, "foc") + sale_payment.process_payment(saleObj, current_user.name, cash, "foc" ,remark) # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") diff --git a/app/controllers/origami/void_controller.rb b/app/controllers/origami/void_controller.rb index aa36067b..578054ee 100755 --- a/app/controllers/origami/void_controller.rb +++ b/app/controllers/origami/void_controller.rb @@ -3,7 +3,7 @@ class Origami::VoidController < BaseOrigamiController def overall_void sale_id = params[:sale_id] - + remark = params[:remark] if Sale.exists?(sale_id) sale = Sale.find_by_sale_id(sale_id) if sale.discount_type == "member_discount" @@ -64,8 +64,8 @@ class Origami::VoidController < BaseOrigamiController end # FOr Sale Audit - action_by = current_user.id - remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}" + action_by = current_user.name + # remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}" sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, action_by,remark,"SALEVOID" ) # For Print diff --git a/app/models/sale_audit.rb b/app/models/sale_audit.rb index 55541851..633db6fe 100755 --- a/app/models/sale_audit.rb +++ b/app/models/sale_audit.rb @@ -24,9 +24,9 @@ class SaleAudit < ApplicationRecord sale_audit.sale_id = sale_id sale_audit.action = "SALECOMPLETE" sale_audit.action_at = DateTime.now.utc - sale_audit.action_by = action_by + sale_audit.action_by = Sale.find(sale_id).cashier_id sale_audit.remark = remark - sale_audit.approved_by = Time.now + sale_audit.approved_by = action_by sale_audit.save! end @@ -72,9 +72,9 @@ class SaleAudit < ApplicationRecord sale_audit.sale_id = sale_id sale_audit.action = "SALEPAYMENT" sale_audit.action_at = DateTime.now.utc - sale_audit.action_by = action_by + sale_audit.action_by = Sale.find(sale_id).cashier_id sale_audit.remark = remark - sale_audit.approved_by = Time.now + sale_audit.approved_by = action_by sale_audit.save! end @@ -83,9 +83,9 @@ class SaleAudit < ApplicationRecord sale_audit.sale_id = sale_id sale_audit.action = "PAYMAL" sale_audit.action_at = DateTime.now.utc - sale_audit.action_by = action_by + sale_audit.action_by = Sale.find(sale_id).cashier_id sale_audit.remark = remark - sale_audit.approved_by = Time.now + sale_audit.approved_by = action_by sale_audit.save! end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 661eb57b..5b0da284 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -8,7 +8,7 @@ class SalePayment < ApplicationRecord attr_accessor :received_amount, :card_payment_reference, :voucher_no, :giftcard_no, :customer_id, :external_payment_status - def process_payment(invoice, action_by, cash_amount, payment_method) + def process_payment(invoice, action_by, cash_amount, payment_method,remark=nil) self.sale = invoice self.received_amount = cash_amount amount_due = invoice.grand_total @@ -53,7 +53,7 @@ class SalePayment < ApplicationRecord end #record an payment in sale-audit - remark = "Payment #{payment_method}- for Invoice #{invoice.receipt_no} Due [#{amount_due}]| pay amount -> #{cash_amount} | Payment Status ->#{payment_status}" + # remark = "Payment #{payment_method}- for Invoice #{invoice.receipt_no} Due [#{amount_due}]| pay amount -> #{cash_amount} | Payment Status ->#{payment_status}" sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by) # update complete order items in oqs @@ -67,7 +67,7 @@ class SalePayment < ApplicationRecord return true, self.save else #record an payment in sale-audit - remark = "No outstanding Amount - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" + # remark = "No outstanding Amount - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" sale_audit = SaleAudit.record_payment(invoice.id, remark,action_by) return false, "No outstanding Amount" diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index 6e1f7128..d5f63d3c 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -428,7 +428,8 @@ <% if @status_sale == 'sale' %> - - - +
+ +