mirror of
https://0xacab.org/sutty/sutty
synced 2025-03-15 08:38:18 +00:00

se puede compilar una versión privada del sitio solo accesible a través del panel, es decir con los mismos niveles de acceso. en combinación con el complemento de jekyll correspondiente, sería posible ver un sitio con otros datos que no se publican.
71 lines
2.2 KiB
Ruby
71 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Rails.application.routes.draw do
|
|
devise_for :usuaries
|
|
mount Blazer::Engine, at: 'blazer'
|
|
|
|
root 'application#index'
|
|
|
|
get 'markdown', to: 'application#markdown'
|
|
|
|
constraints subdomain: 'api' do
|
|
scope module: 'api' do
|
|
namespace :v1 do
|
|
resources :csp_reports, only: %i[create]
|
|
|
|
get :'sites/hidden_services', to: 'sites#hidden_services'
|
|
post :'sites/add_onion', to: 'sites#add_onion'
|
|
resources :sites, only: %i[index], constraints: { site_id: /[a-z0-9\-\.]+/, id: /[a-z0-9\-\.]+/ } do
|
|
get :'invitades/cookie', to: 'invitades#cookie'
|
|
post :'posts/:layout', to: 'posts#create'
|
|
|
|
get :'contact/cookie', to: 'invitades#contact_cookie'
|
|
post :'contact/:form', to: 'contact#receive'
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
# Las rutas privadas empiezan con una ruta única para poder hacer un
|
|
# alias en nginx sin tener que usar expresiones regulares para
|
|
# detectar el nombre del sitio.
|
|
get '/sites/private/:site_id(*file)', to: 'private#show', constraints: { site_id: %r{[^/]+} }
|
|
|
|
resources :sites, constraints: { site_id: %r{[^/]+}, id: %r{[^/]+} } do
|
|
# Gestionar actualizaciones del sitio
|
|
get 'pull', to: 'sites#fetch'
|
|
post 'pull', to: 'sites#merge'
|
|
|
|
# Gestionar usuaries
|
|
get 'usuaries/invite', to: 'usuaries#invite'
|
|
post 'usuaries/invite', to: 'usuaries#send_invitations'
|
|
patch 'usuaries/accept_invitation', to: 'usuaries#accept_invitation'
|
|
patch 'usuaries/reject_invitation', to: 'usuaries#reject_invitation'
|
|
resources :usuaries do
|
|
patch 'demote', to: 'usuaries#demote'
|
|
patch 'promote', to: 'usuaries#promote'
|
|
end
|
|
|
|
get 'collaborate', to: 'collaborations#collaborate'
|
|
post 'collaborate', to: 'collaborations#accept_collaboration'
|
|
|
|
# Gestionar artículos según idioma
|
|
nested do
|
|
scope '(:locale)' do
|
|
post :'posts/reorder', to: 'posts#reorder'
|
|
resources :posts
|
|
end
|
|
end
|
|
|
|
# Gestionar traducciones
|
|
get 'i18n', to: 'i18n#index'
|
|
get 'i18n/edit', to: 'i18n#edit'
|
|
post 'i18n', to: 'i18n#update'
|
|
|
|
# Compilar el sitio
|
|
post 'enqueue', to: 'sites#enqueue'
|
|
post 'reorder_posts', to: 'sites#reorder_posts'
|
|
|
|
resources :stats, only: [:index]
|
|
end
|
|
end
|