add user confirmation

This commit is contained in:
Francesco Picone
2025-12-09 17:50:01 +01:00
parent 10f709a970
commit 402826b7ef
10 changed files with 611 additions and 61 deletions

View File

@@ -0,0 +1,23 @@
-- Aggiunge campi per verifica email agli utenti esistenti
-- Esegui questo script per aggiornare il database senza perdere dati
USE pilatesplatform;
-- Aggiungi campi per verifica email
ALTER TABLE users
ADD COLUMN email_verified BOOLEAN DEFAULT FALSE COMMENT 'True se email verificata' AFTER is_active,
ADD COLUMN email_token VARCHAR(64) DEFAULT NULL COMMENT 'Token per verifica email' AFTER email_verified,
ADD COLUMN email_token_expires DATETIME DEFAULT NULL COMMENT 'Scadenza token verifica email' AFTER email_token;
-- Aggiungi indici per performance
ALTER TABLE users
ADD INDEX idx_email_verified (email_verified),
ADD INDEX idx_email_token (email_token);
-- Imposta tutti gli utenti esistenti come verificati (per retrocompatibilità)
UPDATE users SET email_verified = TRUE WHERE email_verified = FALSE;
-- Imposta admin come verificato
UPDATE users SET email_verified = TRUE WHERE is_admin = TRUE;
SELECT 'Migrazione completata! Campi email_verified, email_token, email_token_expires aggiunti.' AS status;

View File

@@ -22,6 +22,9 @@ CREATE TABLE IF NOT EXISTS users (
last_name VARCHAR(100) NOT NULL COMMENT 'Cognome',
is_admin BOOLEAN DEFAULT FALSE COMMENT 'True se amministratore',
is_active BOOLEAN DEFAULT TRUE COMMENT 'Permette di disabilitare account',
email_verified BOOLEAN DEFAULT FALSE COMMENT 'True se email verificata',
email_token VARCHAR(64) DEFAULT NULL COMMENT 'Token per verifica email',
email_token_expires DATETIME DEFAULT NULL COMMENT 'Scadenza token verifica email',
profile_image VARCHAR(255) DEFAULT NULL COMMENT 'URL immagine profilo',
phone VARCHAR(20) DEFAULT NULL COMMENT 'Numero telefono opzionale',
created_at DATETIME NOT NULL COMMENT 'Data registrazione',
@@ -31,6 +34,8 @@ CREATE TABLE IF NOT EXISTS users (
INDEX idx_email (email),
INDEX idx_is_admin (is_admin),
INDEX idx_email_verified (email_verified),
INDEX idx_email_token (email_token),
INDEX idx_deleted_at (deleted_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Utenti della piattaforma';