Class: UserDecorator

Inherits:
ApplicationDecorator show all
Defined in:
lib/aptible/rails/decorators/user_decorator.rb

Instance Method Summary collapse

Methods inherited from ApplicationDecorator

#pretty_errors

Instance Method Details

#account_permissions(account) ⇒ Object



47
48
49
50
51
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 47

def ()
  cached_permissions.select do |permission|
    permission.links[:account].href == .href
  end
end

#cached_organization_roles(organization) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 29

def cached_organization_roles(organization)
  garner.bind(h.controller.session_token)
    .bind(organization)
    .bind(object) do
    object.organization_roles(organization)
  end
end

#cached_organizationsObject



11
12
13
14
15
16
17
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 11

def cached_organizations
  garner
    .bind(h.controller.session_token)
    .bind(h.controller.current_organization) do
      object.organizations
    end
end

#cached_permissionsObject



37
38
39
40
41
42
43
44
45
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 37

def cached_permissions
  garner.bind(h.controller.session_token) do
    permissions = []
    cached_roles.each do |role|
      permissions += role.permissions
    end
    permissions
  end
end

#cached_rolesObject



23
24
25
26
27
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 23

def cached_roles
  garner.bind(h.controller.session_token) do
    object.roles
  end
end

#can?(scope, account) ⇒ Boolean

Returns:

  • (Boolean)


2
3
4
5
6
7
8
9
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 2

def can?(scope, )
  # Attempt to use current_organization context before loading via HTTP
  organization = context[:current_organization] || .organization

  return true if object.can_manage?(organization)
  user_scopes = ().map(&:scope)
  user_scopes.include?('manage') || user_scopes.include?(scope)
end

#current_trainingObject



53
54
55
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 53

def current_training
  training_logs.first
end

#organization_countObject



19
20
21
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 19

def organization_count
  cached_organizations.count
end

#training_criterionObject



67
68
69
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 67

def training_criterion
  context[:criterion]
end

#training_current?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 57

def training_current?
  training_logs.any?
end

#training_logsObject



61
62
63
64
65
# File 'lib/aptible/rails/decorators/user_decorator.rb', line 61

def training_logs
  training_criterion.documents.select do |doc|
    doc.expires_at > Time.now && doc.links['user'].href == object.href
  end
end