module Aptible::Rails::Controller

Public Instance Methods

auth_url(path = '/', params = {}) click to toggle source
# File lib/aptible/rails/controller.rb, line 126
def auth_url(path = '/', params = {})
  uri = URI.join(Aptible::Auth.configuration.root_url, path)
  uri.query = params.to_query if params
  uri.to_s
end
authenticate_user() click to toggle source

before_action :authenticate_user

# File lib/aptible/rails/controller.rb, line 76
def authenticate_user
  redirect_to Aptible::Rails.configuration.login_url unless current_user
end
bootstrap_backbone() click to toggle source
# File lib/aptible/rails/controller.rb, line 150
def bootstrap_backbone
  return unless current_user

  gon.current_user = current_user.attributes
  gon.security_officer = current_organization.security_officer.attributes
  gon.current_organization = current_organization.attributes
  organization_users = current_organization.users
  gon.current_organization_users = organization_users.map(&:attributes)
end
clear_current_organization() click to toggle source
# File lib/aptible/rails/controller.rb, line 71
def clear_current_organization
  delete_shared_cookie(:organization_url)
end
compliance_alerts() click to toggle source
# File lib/aptible/rails/controller.rb, line 103
def compliance_alerts
  return @compliance_alerts if @compliance_alerts
  @compliance_alerts = ComplianceAlertCollection.new(
    criteria, production_apps, organization_users
  ).all
end
criteria() click to toggle source
# File lib/aptible/rails/controller.rb, line 96
def criteria
  @criteria ||= Aptible::Gridiron::Criterion.where(
    token: session_token,
    organization: current_organization
  )
end
criterion_by_handle(handle) click to toggle source
# File lib/aptible/rails/controller.rb, line 118
def criterion_by_handle(handle)
  Aptible::Gridiron::Criterion.where(
    handle: handle.to_s,
    token: session_token,
    organization: current_organization
  ).first
end
current_organization() click to toggle source
# File lib/aptible/rails/controller.rb, line 27
def current_organization
  return @current_organization if @current_organization
  url = read_shared_cookie(:organization_url)
  if url
    @current_organization = Aptible::Auth::Organization.find_by_url(
      url, token: session_token
    )
  end
  @current_organization ||= default_organization

rescue HyperResource::ClientError => e
  raise e unless e.body['code'] == 403
  @current_organization = default_organization
end
current_organization=(organization) click to toggle source
# File lib/aptible/rails/controller.rb, line 57
def current_organization=(organization)
  write_shared_cookie(:organization_url, organization.href)
end
current_user() click to toggle source
# File lib/aptible/rails/controller.rb, line 18
def current_user
  return unless current_user_url
  @current_user ||= Aptible::Auth::User.find_by_url(current_user_url,
                                                    token: session_token)
rescue => e
  clear_session_cookie
  raise e
end
current_user_url() click to toggle source
# File lib/aptible/rails/controller.rb, line 61
def current_user_url
  token_subject || session_subject
end
default_organization() click to toggle source
# File lib/aptible/rails/controller.rb, line 65
def default_organization
  return @current_organization if @current_organization
  orgs = Aptible::Auth::Organization.all(token: session_token)
  self.current_organization = orgs.first if orgs.any?
end
ensure_auth_key() click to toggle source

before_action :ensure_auth_key

# File lib/aptible/rails/controller.rb, line 89
def ensure_auth_key
  return if Fridge.configuration.public_key
  Fridge.configure do |config|
    config.public_key = Aptible::Auth.public_key unless ::Rails.env.test?
  end
end
ensure_compliance_plan() click to toggle source

before_action :ensure_compliance_plan

# File lib/aptible/rails/controller.rb, line 81
def ensure_compliance_plan
  unless current_organization &&
         current_organization.can_manage_compliance?
    redirect_to compliance_url
  end
end
organization_url(id) click to toggle source
# File lib/aptible/rails/controller.rb, line 110
def organization_url(id)
  "#{dashboard_url}/organizations/#{id}"
end
organization_users() click to toggle source
# File lib/aptible/rails/controller.rb, line 42
def organization_users
  @organization_users ||= current_organization.users
end
policy_criterion() click to toggle source
# File lib/aptible/rails/controller.rb, line 142
def policy_criterion
  @policy_criterion ||= criterion_by_handle(:policy_manual).decorate
end
production_apps() click to toggle source
# File lib/aptible/rails/controller.rb, line 46
def production_apps
  return @production_apps if @production_apps
  accounts = Aptible::Api::Account.all(token: session_token)
  accounts = accounts.select do |account|
    next unless account.type == 'production'
    next unless account.organization == current_organization
    true
  end
  accounts.map(&:apps).flatten.compact
end
risk_criterion() click to toggle source
# File lib/aptible/rails/controller.rb, line 132
def risk_criterion
  @risk_criterion ||=
  criterion_by_handle(:risk_assessment).decorate
end
security_criterion() click to toggle source
# File lib/aptible/rails/controller.rb, line 137
def security_criterion
  @security_criterion ||=
  criterion_by_handle(:app_security_interview).decorate
end
training_criterion() click to toggle source
# File lib/aptible/rails/controller.rb, line 146
def training_criterion
  @training_criterion ||= criterion_by_handle('training_log').decorate
end
user_url(id = current_user.id) click to toggle source
# File lib/aptible/rails/controller.rb, line 114
def user_url(id = current_user.id)
  "#{dashboard_url}/users/#{id}"
end