Eerste commit
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user