Main Avalanche Network server application. Built with Ruby on Rails.

application_controller.rb 2.9KB

    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 before_filter :config_site before_filter :check_admin_mode before_filter :configure_permitted_parameters, if: :devise_controller? before_filter :analytics def configure_permitted_parameters devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :last_name, :email, :current_password, :avatar, :password, :password_confirmation, :avatar_tmp, :avatar_processing, :bio) } devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :email, :password) } end def config_site @config = Info.first if cookies[:avalanche_locale] && I18n.available_locales.include?(cookies[:avalanche_locale].to_sym) l = cookies[:avalanche_locale].to_sym else begin http_accept_language = request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first if http_accept_language != '' ["pt-BR", "pt-br", "pt", "br"].include?(http_accept_language) ? l = :"pt-BR" : l = @config.default_language else l = @config.default_language # use default locale if cannot retrieve this info end rescue l = @config.default_language ensure cookies.permanent[:avalanche_locale] = l end end I18n.locale = l if @config.open_for_public == false && user_signed_in? == false page = params[:controller] if page != 'start' && page != 'users/sessions' && page != 'users/registrations' && page != 'users/invitations' && page != 'devise/passwords' && page != 'devise/unlocks' && page != 'devise/confirmations' && page != 'contact_messages' && page != 'subscription' && page != 'settings' #@analytics.track('Access Denied') redirect_to root_path, notice: (t 'admin_panel.closed_for_public') return end end end def analytics if current_user != nil @id_analytics = current_user.full_name cookies[:avalanche_user_id] = @id_analytics else if cookies[:avalanche_user_id] @id_analytics = cookies[:avalanche_user_id].to_sym else @id_analytics = 'Guest_'+ Time.now.to_i.to_s cookies[:avalanche_user_id] = @id_analytics end end @analytics ||= Analytics.new(@id_analytics) end def after_sign_in_path_for(resource_or_scope) if @analytics == nil analytics end stored_location_for(resource_or_scope) || dashboard_path end protected def check_admin_mode if @config.maintenance_mode && controller_name != 'sessions' && !user_signed_in? && action_name != 'maintenance_mode' render 'admin_panel/maintenance_mode' elsif !@config.maintenance_mode && !user_signed_in? && action_name == 'maintenance_mode' redirect_to root_path end end end