Last active
December 11, 2015 23:18
-
-
Save aalvesjr/4675679 to your computer and use it in GitHub Desktop.
Refactor ApplicationController to GVAR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- encoding:utf-8 -*- | |
class ApplicationController < ActionController::Base | |
protect_from_forgery | |
helper_method :current_user, :logged_in? | |
private | |
def logged_in? | |
current_user.present? | |
end | |
def current_user | |
@current_user ||= session[:user_id] && User.find_by_id(session[:user_id]) | |
end | |
def self.require_logged_user(options = {}) | |
before_filter :require_logged_user, options | |
end | |
def require_logged_user | |
return if logged_in? | |
redirect_to login_path, :notice => "É necessario estar logado para acessar" | |
end | |
# depois tentar tirar essas duplicacoes | |
# gerando dinamicamente os metodos | |
# refactored: 30/01/2013 - Armando | |
def require_role_generic | |
@require_role_generic = lambda do |role| | |
return if current_user.have_role?(:admin) | |
return if current_user.have_role?(role.to_sym) | |
redirect_to_dashboard | |
end | |
end | |
def self.require_role_for_assessoria | |
before_filter :require_role_for_assessoria | |
end | |
def require_role_for_assessoria | |
require_role_generic.call(:assessoria) | |
end | |
def self.require_role_for_servico | |
before_filter :require_role_for_servico | |
end | |
def require_role_for_servico | |
require_role_generic.call(:servico) | |
end | |
def self.require_role_for_payment | |
before_filter :require_role_for_payment | |
end | |
def require_role_for_payment | |
require_role_generic.call(:pagamento) | |
end | |
def self.require_role_for_receipt | |
before_filter :require_role_for_receipt | |
end | |
def require_role_for_receipt | |
require_role_generic.call(:recebimento) | |
end | |
def self.require_role_for_curso | |
before_filter :require_role_for_curso | |
end | |
def require_role_for_curso | |
require_role_generic.call(:curso) | |
end | |
def self.require_role_for_admin(options = {}) | |
before_filter :require_role_for_admin, options | |
end | |
def require_role_for_admin | |
require_role_generic.call(:admin) | |
end | |
def redirect_to_dashboard | |
redirect_to dashboard_path, :notice => t("mensagens.msg0016") | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment