Sha256: a81dd5f6b410cc5cddec1bb90282acea89f57e916598956752781d3938cb6d34

Contents?: true

Size: 1.19 KB

Versions: 39

Compression:

Stored size: 1.19 KB

Contents

module Ecom
  module Core
    class AccessController < ApplicationController
      skip_before_action :authenticate, only: [:login]

      def login
        app_code = Rails.configuration.app_code
        user = User.find_by(email: auth_params[:email])

        if user
          if user.authenticate(auth_params[:password])
            roles = user.roles_for_module(app_code).each_with_object([]) do |role, result|
              result << role.name
            end

            if roles.count <= 0
              render json: { error: 'User has no roles in this application.' }, status: :unprocessable_entity
              return
            end

            payload = { id: user.id, email: user.email, name: user.full_name, roles: roles, projects: user.projects }
            jwt = TokenAuthService.issue(payload)
            render json: { token: jwt, user: payload, error: nil }
          else
            render json: { error: 'Invalid username or password' }, status: 400
          end
        else
          render json: { error: 'User does not exist' }, status: 400
        end
      end

      private

      def auth_params
        params.require(:auth).permit(:email, :password)
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
ecom_core-1.3.14 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.13 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.12 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.11 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.10 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.9 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.8 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.7 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.6 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.5 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.4 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.3 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.2 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.1 app/controllers/ecom/core/access_controller.rb
ecom_core-1.3.0 app/controllers/ecom/core/access_controller.rb
ecom_core-1.2.36 app/controllers/ecom/core/access_controller.rb
ecom_core-1.2.35 app/controllers/ecom/core/access_controller.rb
ecom_core-1.2.34 app/controllers/ecom/core/access_controller.rb
ecom_core-1.2.33 app/controllers/ecom/core/access_controller.rb
ecom_core-1.2.32 app/controllers/ecom/core/access_controller.rb