Sección «Pedir evento» con gestor de reservas y calendario legible en móvil
- /pedir/: calendario de fechas pedidas (negro) y confirmadas (verde), findes tranqui y con ruido, solo findes por defecto con opción de ver la semana entera. Se pincha un día libre y, sin sesión, se pide entrar y se vuelve al formulario con la fecha puesta. - Gestor en Go (gestor/): cuentas por colectivo con argon2id, sesiones y CSRF, cupo y ventana de la asamblea, caducidades, registro append-only. - La cuenta de la asamblea confirma, rechaza, cambia turnos de finde y en «Todas las fechas» quita o modifica cualquier evento. - Orden «cuenta» y «clave» con -clave y -definitiva para fijar contraseñas desde el servidor; ninguna contraseña va en el repositorio. - Botón «Pedir evento» arriba de la barra lateral en todas las páginas. - Calendario semanal en móvil: lista de días con nombre y hora de cada cita. - Fuentes servidas desde fuentes/: fuera Google Fonts en todas las páginas.
This commit is contained in:
parent
c3b51be992
commit
ce3127baff
38 changed files with 4029 additions and 52 deletions
23
gestor/pedir_test.go
Normal file
23
gestor/pedir_test.go
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestDestinoSeguro(t *testing.T) {
|
||||
casos := map[string]string{
|
||||
"/pedir/nueva?fecha=2026-10-09": "/pedir/nueva?fecha=2026-10-09",
|
||||
"/pedir/mis-fechas": "/pedir/mis-fechas",
|
||||
"": "",
|
||||
"/": "",
|
||||
"/index.html": "",
|
||||
"//evil.example/pedir/": "",
|
||||
"https://evil.example/pedir/": "",
|
||||
"/\\evil.example/pedir/": "",
|
||||
"/pedir/\r\nSet-Cookie: x=1": "",
|
||||
"javascript:alert(1)": "",
|
||||
}
|
||||
for entrada, quiero := range casos {
|
||||
if got := destinoSeguro(entrada); got != quiero {
|
||||
t.Errorf("destinoSeguro(%q) = %q, quiero %q", entrada, got, quiero)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue