Class: SimplyGenius::Atmos::Otp

Inherits:
Object
  • Object
show all
Includes:
GemLogger::LoggerSupport, Singleton
Defined in:
lib/simplygenius/atmos/otp.rb

Instance Method Summary collapse

Constructor Details

#initializeOtp

Returns a new instance of Otp.



12
13
14
15
16
# File 'lib/simplygenius/atmos/otp.rb', line 12

def initialize
  @scoped_path = "atmos.otp.#{Atmos.config[:org]}"
  Atmos.config[@scoped_path] ||= {}
  @scoped_secret_store = Atmos.config[@scoped_path]
end

Instance Method Details

#add(name, secret) ⇒ Object



18
19
20
21
22
# File 'lib/simplygenius/atmos/otp.rb', line 18

def add(name, secret)
  old = @scoped_secret_store[name]
  logger.info "Replacing OTP secret #{name}=#{old}" if old
  @scoped_secret_store[name] = secret
end

#generate(name) ⇒ Object



36
37
38
# File 'lib/simplygenius/atmos/otp.rb', line 36

def generate(name)
  otp(name).try(:now)
end

#remove(name) ⇒ Object



24
25
26
27
28
# File 'lib/simplygenius/atmos/otp.rb', line 24

def remove(name)
  old = @scoped_secret_store.delete(name)
  @otp.try(:delete, name)
  logger.info "Removed OTP secret #{name}=#{old}" if old
end

#saveObject



30
31
32
33
34
# File 'lib/simplygenius/atmos/otp.rb', line 30

def save
  data = SettingsHash.new
  data.notation_put(@scoped_path, @scoped_secret_store)
  Atmos.config.save_user_config_file(data)
end