5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2025-02-22 14:21:49 +00:00
panel/app/controllers/application_controller.rb

73 lines
1.4 KiB
Ruby

# frozen_string_literal: true
# Forma de ingreso a Sutty
class ApplicationController < ActionController::Base
include ExceptionHandler
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
before_action :set_locale
layout :layout_by_usuarie
# No tenemos índice de sutty, vamos directamente a ver el listado de
# sitios
def index
redirect_to sites_path
end
def markdown; end
private
def layout_by_usuarie
if current_usuarie
'application'
else
'devise'
end
end
# Encontrar un sitio por su nombre
def find_site
id = params[:site_id] || params[:id]
unless (site = current_usuarie.sites.find_by_name(id))
raise SiteNotFound
end
site
end
def find_post(site)
id = params[:post_id] || params[:id]
lang = find_lang(site)
posts = site.posts_for(lang)
posts.find do |p|
p.id == id
end
end
def find_lang(site)
params.fetch(:lang, site.default_lang)
end
def find_template(site)
id = params[:template_id] || params[:template] || params.dig(:post, :layout)
site.templates.find do |t|
t.id == id
end
end
def set_locale
I18n.locale = current_usuarie.lang
end
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:account_update, keys: %i[lang])
end
end