rosa-build/app/controllers/application_controller.rb

55 lines
1.6 KiB
Ruby
Raw Normal View History

2012-01-30 20:39:34 +00:00
# -*- encoding : utf-8 -*-
2011-03-09 13:13:36 +00:00
class ApplicationController < ActionController::Base
protect_from_forgery
layout :layout_by_resource
before_filter :set_locale
before_filter lambda { EventLog.current_controller = self },
:only => [:create, :destroy, :open_id, :auto_build, :cancel, :publish, :change_visibility] # :update
after_filter lambda { EventLog.current_controller = nil }
helper_method :get_owner
rescue_from CanCan::AccessDenied do |exception|
redirect_to forbidden_url, :alert => t('flash.exception_message')#:alert => exception.message
end
protected
def set_locale
2012-01-18 20:58:38 +00:00
I18n.locale = check_locale( get_user_locale || request.env['HTTP_ACCEPT_LANGUAGE'] )
end
def get_user_locale
user_signed_in? ? current_user.language : nil
end
def check_locale(locale)
User::LANGUAGES.include?(locale.to_s) ? locale : :en
end
def get_owner
2011-11-30 12:58:14 +00:00
# params['user_id'] && User.find_by_id(params['user_id']) ||
# params['group_id'] && Group.find_by_id(params['group_id']) || current_user
if self.class.method_defined? :parent
if parent and (parent.is_a? User or parent.is_a? Group)
return parent
2011-11-30 12:58:14 +00:00
else
return current_user
2011-11-30 12:58:14 +00:00
end
else
params['user_id'] && User.find_by_id(params['user_id']) ||
params['group_id'] && Group.find_by_id(params['group_id']) || current_user
end
end
def layout_by_resource
if devise_controller? && !(params[:controller] == 'devise/registrations' && params[:action] == 'edit')
"sessions"
else
"application"
end
end
2011-03-09 13:13:36 +00:00
end