Class: Bouncer::Token

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(token) ⇒ Token

Returns a new instance of Token.



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/bouncer-client/token.rb', line 6

def initialize token
  @token = token.split(' ')[1]
  return get_from_bouncer unless redis.exists "TOKEN:#{@token}"

  data = redis.get("TOKEN:#{@token}")
  begin
    @payload = JSON.parse data
  rescue JSON::ParserError
    get_from_bouncer
  end
end

Instance Attribute Details

#payloadObject (readonly)

Returns the value of attribute payload.



5
6
7
# File 'lib/bouncer-client/token.rb', line 5

def payload
  @payload
end

Class Method Details

.present?(request) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'lib/bouncer-client/token.rb', line 55

def self.present? request
  return false unless auth_header = request.headers['authorization']
  auth_header.split(' ')[0] == 'Bearer'
end

Instance Method Details

#device?Boolean

Returns:

  • (Boolean)


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

def device?
  @payload['devices'] && !@payload['devices'].empty?
end

#emailObject



26
27
28
# File 'lib/bouncer-client/token.rb', line 26

def email
  @payload["users"]["email"] if user?
end

#idObject



18
19
20
21
22
23
24
# File 'lib/bouncer-client/token.rb', line 18

def id
  if device?
    @payload["devices"]["id"]
  else
    @payload["users"]["id"]
  end
end

#imageObject



34
35
36
# File 'lib/bouncer-client/token.rb', line 34

def image
  @payload["users"]["image"] if user?
end

#phoneObject



30
31
32
# File 'lib/bouncer-client/token.rb', line 30

def phone
  @payload["users"]["phone"] if user?
end

#super_admin?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/bouncer-client/token.rb', line 43

def super_admin?
  @payload["users"]["super_admin"] == true
end

#user?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/bouncer-client/token.rb', line 51

def user?
  @payload['users'] && !@payload['users'].empty?
end

#validate!Object



38
39
40
41
# File 'lib/bouncer-client/token.rb', line 38

def validate!
  return false unless @payload
  @payload["users"] != nil || @payload["devices"] != nil
end