Sha256: 73e6c11eeda51df2d25f898ebd47bd87aeef7c456d47b4387a28f68f6aeb17b4

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

module DoorkeeperHub
  module Helpers
    extend ActiveSupport::Concern

    included do
      before_action :authenticate_doorkeeper!
    end

    def authenticate_doorkeeper!
      if signed_in?(DoorkeeperHub.devise_scope)
        redirect_to root_path_with_token if params[DoorkeeperHub.token_param].nil?
      else
        redirect_to omniauth_authorize_path(
          DoorkeeperHub.devise_scope, :saml
        )
      end
    end

    def default_url_options(options = {})
      options[DoorkeeperHub.token_param] = params[DoorkeeperHub.token_param]
      options
    end

    def after_sign_in_path_for(user)
      root_path_with_token
    end

    def root_path_with_token
      root_path DoorkeeperHub.token_param => params_or_default_token
    end

    def params_or_default_token
      params[DoorkeeperHub.token_param] ||
        current_user.companies.first.send(DoorkeeperHub.config.doorkeeper_token_name)
    end

    def company
      @company ||=
        current_user.companies.active.find_by(DoorkeeperHub.config.doorkeeper_token_name => params[DoorkeeperHub.token_param]) ||
          raise(ActionController::RoutingError.new('Not Found'))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
doorkeeper_hub-0.1.6 lib/doorkeeper_hub/helpers.rb