require_dependency 'application_responder' require_dependency 'ipaddr'

class ApplicationController < ActionController::Base <% if pundit? -%>

include Pundit

<% end -%>

protect_from_forgery with: :exception

<% if pundit? -%>

rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized

<% end -%>

def self.responder
  ApplicationResponder
end

<% if devise? -%>

def guest_user?
  !current_user
end

<% end -%> <% if user_role_field? -%>

def guest_user
  User.guest
end

<% end -%>

protected

def local_request?
  local_network = IPAddr.new('192.168.0.0/8')
  request.local? || local_network === request.remote_ip
end

<% if pundit? -%>

def user_not_authorized(exception)
  flash[:error] = 'You are not authorized to perform this action.'
  redirect_to(request.referrer || root_path)
end

<% end -%> end