You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
senzapaura_es/drizzle/0011_administradores.sql

18 lines
901 B

La puerta del panel, y una portada que dice qué falta Fase 6. Está lo que todo lo demás necesita: quién entra y por dónde. El rol vive en `usuario.rol`, con un CHECK que impide inventarse uno, y se da con `npm run db:admin`. En una variable de entorno con correos habría sido más rápido, pero entonces revocar a alguien pide un despliegue y a la pregunta «quién administra esto» solo sabe contestar quien pueda leer la configuración del servidor. La guarda está en el `+layout.server.ts` de la carpeta y no en cada ruta: una pantalla nueva queda protegida por el hecho de estar dentro. Sin sesión, a entrar con la vuelta puesta; con sesión y sin el rol, 404 y no 403, porque un 403 confirma que el panel existe y dónde vive. Los tres casos, comprobados contra la aplicación de verdad. La portada contesta «qué falta» y no «cuánto hay». Cada sección trae lo que tiene, lo que está a medias y los nombres de lo que está a medias: decir «1 género sin ficha» obliga a ir a buscar cuál, y esa búsqueda ya la ha hecho la consulta. Dos viajes a la base para las siete filas. Fuera Sveltia CMS y `static/admin/`. Editaba los Markdown de `src/content/`, que desde la fase 4 no lee nadie: guardaba cambios que no salían en pantalla, y además tapaba la ruta nueva. Y de paso, la prueba de contacto que fallaba en la tanda completa y pasaba a solas. No era aislamiento: `page.goto` vuelve al cargar, no al hidratar, y al hidratar Svelte reescribe el valor de cada `input` con el del componente. Lo tecleado antes de ese instante se perdía, y solo le pasaba al primer campo y solo con la máquina cargada. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
-- Quién administra el sitio.
--
-- El rol va en la base y no en una variable de entorno con una lista de
-- correos. Con la variable, revocarle el acceso a alguien pide un despliegue, y
-- a la pregunta «quién administra esto» solo sabe contestar quien pueda leer la
-- configuración del servidor.
--
-- El `CHECK` no es adorno. La columna es texto, así que sin él un `UPDATE`
-- escrito a mano con «adminn» dejaría una cuenta en un rol que no existe: ni
-- administra ni queda registrada como que no. Un rol desconocido tiene que ser
-- imposible, no improbable.
--
-- `persona` por defecto, y las cuentas que ya existen se quedan ahí: encender
-- esta columna no puede dar permisos a nadie.
ALTER TABLE "usuario" ADD COLUMN "rol" text DEFAULT 'persona' NOT NULL;--> statement-breakpoint
ALTER TABLE "usuario" ADD CONSTRAINT "usuario_rol_conocido" CHECK ("rol" IN ('persona', 'admin'));

Powered by TurnKey Linux.