Sha256: 7b2c402a0c343e6eda6ace45dc9a22cd8adc91ce1f7cf38e685c74fd497e4953

Contents?: true

Size: 917 Bytes

Versions: 1

Compression:

Stored size: 917 Bytes

Contents

module DoorkeeperSsoClient
  module Mixins
    module ControllerHelpers
      extend ActiveSupport::Concern

      module ClassMethods
        def activate_sso(scope, options = {})

          class_eval <<-METHODS, __FILE__, __LINE__ + 1
            def validate_passport!
              if #{scope}_signed_in?
                sign_out(current_#{scope}) unless current_#{scope}.passport.try(:active?)
              end
              return true
            end
          METHODS

          unless options[:skip_devise_hook]
            class_eval <<-METHODS, __FILE__, __LINE__ + 1
              def authenticate_#{scope}!
                store_location_for(:#{scope}, request.original_url)
                validate_passport!
                redirect_to DoorkeeperSsoClient::Config.oauth_login_path unless #{scope}_signed_in?
              end
            METHODS
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
doorkeeper_sso_client-0.2.8 lib/doorkeeper_sso_client/mixins/controller_helpers.rb