1
0
Fork 0
This repository has been archived on 2023-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
lpr-partynest/app/controllers/application_controller.rb

77 lines
2 KiB
Ruby
Raw Normal View History

2018-11-23 00:58:12 +05:00
# frozen_string_literal: true
2018-11-23 00:33:08 +05:00
class ApplicationController < ActionController::Base
2018-11-30 05:02:04 +05:00
include Pundit
2018-11-29 18:51:03 +05:00
2018-12-01 06:39:26 +05:00
protect_from_forgery with: :exception, prepend: true, unless: :json_request?
2018-12-12 06:54:38 +05:00
before_action :set_raven_context
2019-07-19 08:04:16 +05:00
# before_action :sign_in_guest_account
2018-12-12 06:54:38 +05:00
2018-11-30 05:17:26 +05:00
after_action :verify_authorized, except: :index
after_action :verify_policy_scoped, only: :index
2018-12-12 06:29:46 +05:00
rescue_from ActiveRecord::RecordNotFound, with: :render_not_found
rescue_from Pundit::NotAuthorizedError, with: :render_forbidden
2018-11-29 18:51:03 +05:00
2018-12-02 07:28:34 +05:00
helper_method :current_account
private
2018-12-02 07:28:34 +05:00
def current_account
2018-12-06 04:20:50 +05:00
@current_account ||= current_user&.account
2019-07-19 08:04:16 +05:00
# @current_account ||= Account.guests.find_by id: session[:guest_account_id]
2018-12-02 07:28:34 +05:00
end
2018-12-13 08:09:49 +05:00
alias pundit_user current_account
2018-12-02 07:28:34 +05:00
2018-11-29 19:57:40 +05:00
def set_raven_context
2018-12-12 06:43:15 +05:00
Raven.user_context(
account_id: current_account&.id,
2019-04-28 18:34:46 +05:00
user_id: current_user&.id,
2018-12-12 06:43:15 +05:00
)
2018-11-29 19:57:40 +05:00
Raven.extra_context params: params.to_unsafe_h, url: request.url
end
2019-07-19 08:04:16 +05:00
# def sign_in_guest_account
# return if current_account || params[:guest_token].blank?
2018-12-12 07:04:13 +05:00
2019-07-19 08:04:16 +05:00
# account = Account.guests.find_by! guest_token: params[:guest_token]
# remember_if_guest_account account
# redirect_to request.original_url
# end
2018-12-12 07:04:13 +05:00
def json_request?
request.format.json?
end
2018-11-29 18:51:03 +05:00
2018-12-12 06:29:46 +05:00
def render_not_found
2018-12-12 06:27:47 +05:00
respond_to do |format|
format.html { render status: :not_found, template: 'errors/not_found' }
format.json { render status: :not_found, json: {} }
end
2018-11-29 18:51:03 +05:00
end
def render_forbidden
2019-03-27 09:49:08 +05:00
respond_to do |format|
format.html { render status: :forbidden, template: 'errors/forbidden' }
format.json { render status: :forbidden, json: {} }
end
2018-11-29 18:51:03 +05:00
end
2018-12-05 06:49:26 +05:00
2018-12-12 06:29:46 +05:00
def render_method_not_allowed
respond_to do |format|
format.html do
2019-04-28 18:34:46 +05:00
render status: :method_not_allowed,
template: 'errors/method_not_allowed'
end
format.json { render status: :method_not_allowed, json: {} }
end
end
2019-07-19 08:04:16 +05:00
# def remember_if_guest_account(account)
# session[:guest_account_id] = account.id if account.guest?
# end
2018-11-23 00:33:08 +05:00
end