Module: Legion::Extensions::Identity::System::Identity

Defined in:
lib/legion/extensions/identity/system/identity.rb

Class Method Summary collapse

Class Method Details

.capabilitiesObject



36
37
38
# File 'lib/legion/extensions/identity/system/identity.rb', line 36

def capabilities
  [:profile]
end

.facingObject



20
21
22
# File 'lib/legion/extensions/identity/system/identity.rb', line 20

def facing
  nil
end

.normalize(val) ⇒ Object



60
61
62
63
64
# File 'lib/legion/extensions/identity/system/identity.rb', line 60

def normalize(val)
  str = val.to_s.downcase.strip
  str = str.split('@', 2).first if str.include?('@')
  str.tr('.', '-').gsub(/[^a-z0-9_-]/, '')
end

.priorityObject



24
25
26
# File 'lib/legion/extensions/identity/system/identity.rb', line 24

def priority
  0
end

.provider_nameObject



12
13
14
# File 'lib/legion/extensions/identity/system/identity.rb', line 12

def provider_name
  :system
end

.provider_typeObject



16
17
18
# File 'lib/legion/extensions/identity/system/identity.rb', line 16

def provider_type
  :fallback
end

.resolveObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/legion/extensions/identity/system/identity.rb', line 40

def resolve
  raw = ENV.fetch('USER', nil)
  return nil if raw.nil? || raw.strip.empty?

  normalized = normalize(raw)
  return nil if normalized.empty?

  {
    canonical_name: normalized,
    kind:           :human,
    source:         :system,
    persistent:     false,
    groups:         [],
    profile:        {
      username: raw,
      hostname: ::Socket.gethostname
    }
  }
end

.trust_levelObject



32
33
34
# File 'lib/legion/extensions/identity/system/identity.rb', line 32

def trust_level
  :unverified
end

.trust_weightObject



28
29
30
# File 'lib/legion/extensions/identity/system/identity.rb', line 28

def trust_weight
  200
end