Class: Zm::Client::Token

Inherits:
Object
  • Object
show all
Defined in:
lib/zm/client/token.rb

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ Token

Returns a new instance of Token.



6
7
8
9
# File 'lib/zm/client/token.rb', line 6

def initialize(str)
  @str = str
  @key_id, @hmac, @encoded = @str.split('_')
end

Instance Method Details

#admin?Boolean

Returns:

  • (Boolean)


31
32
33
34
35
# File 'lib/zm/client/token.rb', line 31

def admin?
  return @admin if defined? @admin

  @admin = metadatas['admin'] == '1'
end

#decodedObject



15
16
17
18
19
# File 'lib/zm/client/token.rb', line 15

def decoded
  return @decoded if defined? @decoded

  @decoded = [@encoded].pack('H*')
end

#expire_atObject



41
42
43
44
45
# File 'lib/zm/client/token.rb', line 41

def expire_at
  return @expire_at if defined? @expire_at

  @expire_at = Time.at(metadatas['exp'].to_f / 1000).freeze
end

#expired?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/zm/client/token.rb', line 47

def expired?
  expire_at < Time.now
end

#metadatasObject



21
22
23
24
25
# File 'lib/zm/client/token.rb', line 21

def metadatas
  return @metadatas if defined? @metadatas

  @metadatas = decoded.split(';').to_h { |part| part.split(/=\d+:/) }.freeze
end

#server_versionObject



37
38
39
# File 'lib/zm/client/token.rb', line 37

def server_version
  metadatas['version']
end

#to_sObject



11
12
13
# File 'lib/zm/client/token.rb', line 11

def to_s
  @str
end

#zimbra_idObject



27
28
29
# File 'lib/zm/client/token.rb', line 27

def zimbra_id
  metadatas['id']
end