Sha256: 27ce06991626b12ba3e8038fedc2646668b80da7a0436b27f8cf63ea1f505d9c

Contents?: true

Size: 1.79 KB

Versions: 7

Compression:

Stored size: 1.79 KB

Contents

class Api::V1::ApiController < ::ActionController::API

  before_action :authenticate_app
  before_action :authenticate_user

  private

    def authenticate_app
      api_key = ::Arcadex::Header.grab_param_header(params,request,::Settings.main_api_header,false)
      if api_key.nil? || api_key != ::Settings.main_api_key
        render :json => {errors: "App is not authorized"} , status: :forbidden
      end
    end

    def authenticate_user
      set_hash
      if @instance_hash.nil?
        response.headers["Logged-In-Status"] = "false"
        render :json => {errors: "User is not logged in, register or log in"} , status: :unauthorized
      else
        response.headers["Logged-In-Status"] = "true"
      end
    end

<% if !options.fbonly? %> 
    def authenticate_password
      if current_user.nil?
        return true
      end
      if !current_user.authenticate(params[:user][:password]) 
        return true
      else
        return false
      end
    end
<% end %>

    def set_hash
      #["current_owner","current_token"] Make this true to check for email also
      @instance_hash = ::Arcadex::Authentication.get_instance(params,request,::Settings.token_header)
      #@instance_hash = ::Arcadex::Authentication.authenticate_owner_with_index(params,request,"::Settings.token_header,"Email","email",true)
      #Ignore the token if the user's account is locked
      <% if !options.fbonly? %> 
      if !current_user.nil? && current_user.locked
        @instance_hash = nil
      end
      <% end %>
    end

    def current_user
      if !@instance_hash.nil?
        return @instance_hash["current_owner"]
      else
        return nil
      end
    end

    def current_token
      if !@instance_hash.nil?
        return @instance_hash["current_token"]
      else
        return nil
      end
    end
    
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
json_voorhees-1.5.1 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb
json_voorhees-1.5.0 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb
json_voorhees-1.4.9 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb
json_voorhees-1.4.8 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb
json_voorhees-1.4.7 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb
json_voorhees-1.4.6 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb
json_voorhees-1.4.5 lib/generators/json_voorhees/setup_app/templates/api_controller_with_arcadex.rb