class UserDecorator

Public Instance Methods

account_permissions(account) click to toggle source
# File lib/aptible/rails/decorators/user_decorator.rb, line 47
def account_permissions(account)
  cached_permissions.select do |permission|
    permission.links[:account].href == account.href
  end
end
cached_organization_roles(organization) click to toggle source
# 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_organizations() click to toggle source
# 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_permissions() click to toggle source
# 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_roles() click to toggle source
# 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) click to toggle source
# File lib/aptible/rails/decorators/user_decorator.rb, line 2
def can?(scope, account)
  # Attempt to use current_organization context before loading via HTTP
  organization = context[:current_organization] || account.organization

  return true if object.can_manage?(organization)
  user_scopes = account_permissions(account).map(&:scope)
  user_scopes.include?('manage') || user_scopes.include?(scope)
end
current_training() click to toggle source
# File lib/aptible/rails/decorators/user_decorator.rb, line 53
def current_training
  training_logs.first
end
organization_count() click to toggle source
# File lib/aptible/rails/decorators/user_decorator.rb, line 19
def organization_count
  cached_organizations.count
end
training_criterion() click to toggle source
# File lib/aptible/rails/decorators/user_decorator.rb, line 67
def training_criterion
  context[:criterion]
end
training_current?() click to toggle source
# File lib/aptible/rails/decorators/user_decorator.rb, line 57
def training_current?
  training_logs.any?
end
training_logs() click to toggle source
# 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