Files
sx-fc/app/controllers/base_origami_controller.rb
Thein Lin Kyaw 1607cb70d3 Single database for multiple shops
Use ActsAsTenant as Multi-tenancy for shops

See below files:
- app/controllers/concern/multi_tenancy.rb
- app/models/application_record.rb
- app/models/shop.rb

An initializer can be created to control option in ActsAsTenant.

config/initializers/acts_as_tenant.rb
require 'acts_as_tenant/sidekiq'

ActsAsTenant.configure do |config|
  config.require_tenant = false # true
end

more detail: https://github.com/ErwinM/acts_as_tenant
2019-12-02 18:02:39 +06:30

58 lines
1.3 KiB
Ruby
Executable File

class BaseOrigamiController < ActionController::Base
include LoginVerification, MultiTenancy
layout "origami"
before_action :check_user
#before_action :check_installation
protect_from_forgery with: :exception
helper_method :current_token
rescue_from CanCan::AccessDenied do |exception|
flash[:warning] = exception.message
# redirect_to origami_root_path
redirect_to origami_dashboard_path
end
def check_user
if check_mobile
if current_user.nil?
return render status: 401, json: {
message: "User using other device!"
}.to_json
end
else
if current_user.nil?
redirect_to root_path
end
end
end
# def checkin_process
# CheckinJob.set(wait: 1.minute).perform_later()
# end
# Get current Cashier
def get_cashier
@cashier = Employee.where("role = 'cashier' AND token_session <> ''")
end
#check webview
def check_mobile
status = false
authenticate_with_http_token do |token, options|
if token
session[:webview] = true
session[:session_token] = token
end
end
if session[:webview] && request.user_agent =~ /android|blackberry|iphone|ipad|ipod|iemobile|mobile|webos/i
status = true
end
return status
end
end