Class: Legion::Extensions::Helpers::SecretAccessor

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/extensions/helpers/secret.rb

Instance Method Summary collapse

Constructor Details

#initialize(lex_name:) ⇒ SecretAccessor

Returns a new instance of SecretAccessor.



7
8
9
10
# File 'lib/legion/extensions/helpers/secret.rb', line 7

def initialize(lex_name:)
  @lex_name = lex_name
  @warned = false
end

Instance Method Details

#[](name, shared: false, user: nil) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/legion/extensions/helpers/secret.rb', line 12

def [](name, shared: false, user: nil)
  return nil unless crypt_available?

  Legion::Crypt.get(resolve_path(name, shared: shared, user: user))
rescue StandardError => e
  log_warn("secret read failed for #{name}: #{e.message}")
  nil
end

#[]=(name, value) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/legion/extensions/helpers/secret.rb', line 21

def []=(name, value)
  return unless crypt_available?

  Legion::Crypt.write(resolve_path(name, shared: false, user: nil), **value)
rescue StandardError => e
  log_warn("secret write failed for #{name}: #{e.message}")
end

#delete(name, shared: false, user: nil) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/legion/extensions/helpers/secret.rb', line 47

def delete(name, shared: false, user: nil)
  return false unless crypt_available?

  Legion::Crypt.delete(resolve_path(name, shared: shared, user: user))
  true
rescue StandardError => e
  log_warn("secret delete failed for #{name}: #{e.message}")
  false
end

#exist?(name, shared: false, user: nil) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
45
# File 'lib/legion/extensions/helpers/secret.rb', line 39

def exist?(name, shared: false, user: nil)
  return false unless crypt_available?

  Legion::Crypt.exist?(resolve_path(name, shared: shared, user: user))
rescue StandardError
  false
end

#write(name, shared: false, user: nil, **data) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/legion/extensions/helpers/secret.rb', line 29

def write(name, shared: false, user: nil, **data)
  return false unless crypt_available?

  Legion::Crypt.write(resolve_path(name, shared: shared, user: user), **data)
  true
rescue StandardError => e
  log_warn("secret write failed for #{name}: #{e.message}")
  false
end