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 return true #Maybe log - login? else flash[:notice] = 'Invalid Access!' # return false 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