mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 01:14:43 +00:00
44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
class ApplicationController < ActionController::Base
|
|
# Prevent CSRF attacks by raising an exception.
|
|
# For APIs, you may want to use :null_session instead.
|
|
protect_from_forgery prepend: true, with: :exception
|
|
|
|
after_action :set_csrf_cookie_for_ng
|
|
|
|
# Add helpers for authentication (replacing Devise)
|
|
helper_method :current_user, :user_signed_in?
|
|
|
|
def current_user
|
|
@current_user ||= User.find_by(id: session[:user_id]) if session[:user_id]
|
|
end
|
|
|
|
def user_signed_in?
|
|
current_user.present?
|
|
end
|
|
|
|
def authenticate_user!
|
|
redirect_to login_path, alert: "Please log in to access this page" unless user_signed_in?
|
|
end
|
|
|
|
def set_csrf_cookie_for_ng
|
|
cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery?
|
|
end
|
|
|
|
rescue_from CanCan::AccessDenied do |exception|
|
|
redirect_to '/static_pages/not_allowed'
|
|
end
|
|
|
|
protected
|
|
|
|
# In Rails 4.2 and above
|
|
def verified_request?
|
|
super || valid_authenticity_token?(session, request.headers['X-XSRF-TOKEN'])
|
|
end
|
|
|
|
# Override current_ability to pass school_permission_key
|
|
# @school_permission_key needs to be defined on the controller
|
|
def current_ability
|
|
@current_ability ||= Ability.new(current_user, @school_permission_key)
|
|
end
|
|
end
|