Sha256: 6a124721c582cf543e5f69ca62a0b14fc3e20607512382742ae56a4243566eda

Contents?: true

Size: 1.13 KB

Versions: 26

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

module Decidim
  module Doorkeeper
    # A controller to expose a simple JSON API so OAuth clients can get the user's information.
    class CredentialsController < ApplicationController
      before_action :doorkeeper_authorize!
      respond_to :json

      def me
        respond_with public_data
      end

      private

      def public_data
        {
          id: current_resource_owner.id,
          email: current_resource_owner.email,
          name: current_resource_owner.name,
          nickname: current_resource_owner.nickname,
          image: avatar_url
        }
      end

      def current_resource_owner
        @current_resource_owner ||= Decidim::User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
      end

      def avatar_url
        avatar_url = current_resource_owner.avatar_url
        return unless avatar_url

        unless %r{^https?://}.match? avatar_url
          request_uri = URI.parse(request.url)
          request_uri.path = avatar_url
          request_uri.query = nil
          avatar_url = request_uri.to_s
        end

        avatar_url
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
decidim-core-0.24.3 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.6 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.24.2 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.5 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.24.1 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.24.0 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.24.0.rc2 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.4 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.24.0.rc1 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.3 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.2 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.1 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.1.rc1 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.23.0 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.22.0 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.21.0 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.20.1 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.20.0 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.19.1 app/controllers/decidim/doorkeeper/credentials_controller.rb
decidim-core-0.18.1 app/controllers/decidim/doorkeeper/credentials_controller.rb