class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
  include Adm::SessionsHelper
  
  def access_granted?(permissions)
    permissions.each do |p|
      return true if current_user.user_access.name == p if signed_in?
    end
    return false
  end
    
  def access_granted_forward?(permissions, foward, msg="Você não tem acesso") 
    redirect_to foward, notice: msg unless permissions.any?				
    if not signed_in?
        redirect_to foward, notice: "Por favor, faça login antes de acessar essa página" 
        return
    end				
		
    permissions.each do |p|
      return true if current_user.user_access.name == p  if signed_in?
    end

    redirect_to foward, notice: msg
  end

  def access_foward_if_not_adm
  	access_granted_forward?(["adm"], root_path, "Apenas o administrador tem acesso a essa página")
  end
  
  def access_foward_if_not_emp
    access_granted_forward?(["emp"], root_path, "Apenas o empresários tem acesso a essa página")
  end

  def access_foward_if_opr
    access_granted_forward?(["adm","emp"], root_path, "Operadores não possuem acesso a essa página")
  end
	
  def access_foward_if_adm
  	access_granted_forward?(["emp","opr"], root_path, "Administradores não possuem acesso diretor a essa página")
  end    
  
  def access_foward_if_not_logged
    if not signed_in?
      redirect_to public_plataforma_path, notice: "Por favor, faça login antes de acessar essa página" 
    end
  end

  def render_admin pag = 'index'
    respond_to do |format|
      format.html { render action: pag , layout: 'admin' }
    end
  end
  
end
