Module: CmpaAuth::RailsHelpers
- Defined in:
- lib/cmpa_auth/rails_helpers.rb
Overview
Implementa a autenticação através de um before_filter. Todo o controle é realizado através de dois ids armazenados na sessão: current_user_id e lotacao_temporaria_id.
O módulo também oferece suporte a algumas facilidades, como perguntar se o usuário está logado.
Class Method Summary collapse
-
.included(receiver) ⇒ Object
:nodoc:.
Class Method Details
.included(receiver) ⇒ Object
:nodoc:
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/cmpa_auth/rails_helpers.rb', line 12 def self.included(receiver) #:nodoc: receiver.class_eval do before_filter :cmpa_authenticate helper_method :current_user, :current_lotacao, :logged_in? rescue_from CmpaAuth::AccessDenied, :with => lambda { render_403 } # # Renderiza uma mensagem de erro HTML to tipo 403 (proibido) nos casos # em que a exceção CmpaAuth::AccessDenied for disparada. # def render_403 render :template => "rescues/403", :status => 403, :layout => false end private def cmpa_authenticate redirect_to new_session_url unless logged_in? end # # Retorna o usuário logado na sessão. # def current_user @current_user ||= ::Pessoa.find_by_id(session[:current_user_id]) end # # Retorna a lotação temporária atual (aquela que o usuário escolheu ao # logar no sistema). # def current_lotacao @current_lotacao ||= ::LotacaoTemporaria.find_by_id(session[:lotacao_temporaria_id]) end # Verifica se o usuário está logado. def logged_in? current_user && current_lotacao end end end |