lib/rhoconnect/license.rb in rhoconnect-4.0.4 vs lib/rhoconnect/license.rb in rhoconnect-5.1.1
- old
+ new
@@ -2,11 +2,11 @@
require 'pathname'
module Rhoconnect
class LicenseException < RuntimeError; end
class LicenseSeatsExceededException < LicenseException; end
-
+
class License
attr_reader :rhoconnect_version, :licensee, :seats, :issued
attr_accessor :license
# ships with rhoconnect
@@ -18,13 +18,13 @@
if ENV['RHOCONNECT_LICENSE']
@license = ENV['RHOCONNECT_LICENSE']
elsif ENV['RHOSYNC_LICENSE']
@license = ENV['RHOSYNC_LICENSE']
else
- app_config = Rhoconnect.get_config(Rhoconnect.base_directory)
+ # app_config = Rhoconnect.get_config(Rhoconnect.base_directory)
settings = Rhoconnect.get_config(Rhoconnect.base_directory)[Rhoconnect.environment]
- licensefile = settings[:licensefile]
+ licensefile = settings[:licensefile]
if licensefile
path_to_license = (Pathname.new(licensefile).absolute?) ? licensefile : File.join(Rhoconnect.base_directory, licensefile)
else
path_to_license = File.join(File.dirname(__FILE__), '..', '..', 'generators', 'templates', 'application', 'settings', 'license.key')
end
@@ -35,11 +35,11 @@
log e.message
log e.backtrace.join("\n")
raise LicenseException.new("Error verifying license.")
end
end
-
+
def check_and_use_seat
incr = false
Store.lock(CLIENT_DOCKEY) do
current = Store.get_value(CLIENT_DOCKEY)
current = current ? current.to_i : 0
@@ -51,27 +51,27 @@
unless incr
msg = "WARNING: Maximum # of devices exceeded for this license."
log msg; raise LicenseSeatsExceededException.new(msg)
end
end
-
+
def free_seat
Store.lock(CLIENT_DOCKEY) do
current = Store.get_value(CLIENT_DOCKEY)
current = current ? current.to_i : 0
if current > 0
Store.put_value CLIENT_DOCKEY, current - 1
end
end
end
-
+
def available
current = Store.get_value(CLIENT_DOCKEY)
current = current ? current.to_i : 0
available = self.seats - current
available > 0 ? available : 0
end
-
+
private
def _decrypt
cipher = OpenSSL::Cipher::Cipher.new("aes-256-ecb")
cipher.key = _extract_str(RHO_PUBLICKEY)