Eerste commit

This commit is contained in:
jf
2026-09-27 14:21:31 +00:00
commit de4ff128cb
295 changed files with 47374 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
-- MijnBesluit - bezwaar maken zonder in te loggen
--
-- Als er gemeld wordt dat je bent overleden, krijg je daar bericht van met de vraag of dat
-- klopt. Tot nu toe moest je inloggen om te zeggen dat je er nog bent. Dat gaat mis op precies
-- het moment dat het ertoe doet: zodra het overlijden bevestigd is, staat je account op
-- "overleden" en kun je niet meer inloggen. Dan is er geen weg terug.
--
-- Daarom gaat er voortaan een link mee in die e-mail, die werkt zonder inloggen - net als een
-- uitnodiging. Alleen de versleutelde vorm van dat kenmerk staat hier; de link zelf staat
-- uitsluitend in de e-mail.
--
-- objection_token_hash : SHA-256 van het kenmerk uit de link
-- objection_token_expires : tot wanneer die link werkt
--
-- Draaien met:
-- mysql -u root -p mijnbesluit < db\10_bezwaarlink.sql
--
-- Opnieuw draaien mag: er gebeurt dan niets.
USE `mijnbesluit`;
-- ---------------------------------------------------------------- objection_token_hash
SET @bestaat := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'persons' AND COLUMN_NAME = 'objection_token_hash');
SET @sql := IF(@bestaat = 0,
'ALTER TABLE `persons` ADD COLUMN `objection_token_hash` VARBINARY(32) NULL',
'SELECT "objection_token_hash bestaat al" AS melding');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- ---------------------------------------------------------------- objection_token_expires
SET @bestaat := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'persons' AND COLUMN_NAME = 'objection_token_expires');
SET @sql := IF(@bestaat = 0,
'ALTER TABLE `persons` ADD COLUMN `objection_token_expires` DATETIME(3) NULL',
'SELECT "objection_token_expires bestaat al" AS melding');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- ---------------------------------------------------------------- index
-- De link wordt opgezocht op dit kenmerk, dus zonder index is dat een tabelscan.
SET @bestaat := (
SELECT COUNT(*) FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'persons' AND INDEX_NAME = 'ix_persons_objection');
SET @sql := IF(@bestaat = 0,
'CREATE INDEX `ix_persons_objection` ON `persons` (`objection_token_hash`)',
'SELECT "ix_persons_objection bestaat al" AS melding');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SELECT 'Klaar. De waarschuwingsmail krijgt vanaf nu een bezwaarlink.' AS melding;