Posta configurabile dall'app, contatti dei proclamatori, conferma email
- Server di posta in Impostazioni (password cifrata, email di prova): se compilato prende il posto del .env; non si esporta e l'import XML non lo cancella. MAIL_SCHEME=tls nel .env.example non era valido per Laravel 11. - Proclamatori con email e telefono facoltativi, cifrati, nell'XML e cancellati dall'anonimizzazione; il numero apre WhatsApp. - Dopo l'assegnazione un riquadro in evidenza con il link del PDF, "Invia su WhatsApp" con il messaggio pronto e la scelta "inviato / non ancora", che resta finché non si sceglie. - Conferma dell'email obbligatoria per tutti gli utenti, anche esistenti: email in italiano, link valido senza login, nuova conferma a ogni cambio di indirizzo, "Reinvia conferma" in Utenti. Senza conferma restano raggiungibili profilo, cambio password e, per l'admin, il server di posta; comando utenti:conferma-email per l'emergenza. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,8 @@ use App\Http\Controllers\Settings\XmlExchangeUploadController;
|
||||
use App\Http\Controllers\AssignmentPdfController;
|
||||
use App\Http\Controllers\ShortPdfLinkController;
|
||||
use App\Http\Controllers\TerritorioFileController;
|
||||
use App\Http\Controllers\Auth\VerificaEmailController;
|
||||
use App\Livewire\Settings\PostaElettronica;
|
||||
use App\Http\Controllers\Auth\LoginController;
|
||||
use App\Http\Controllers\Auth\PasswordChangeController;
|
||||
use App\Livewire\Home;
|
||||
@@ -68,10 +70,17 @@ Route::get('assegnazioni/pdf/{assignment}/{code}/file', [AssignmentPdfController
|
||||
| Authenticated Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::middleware('auth')->group(function () {
|
||||
// Il link della mail di conferma: firmato e con scadenza, funziona anche
|
||||
// senza essere entrati (lo si apre spesso dal telefono).
|
||||
Route::get('conferma-email/{id}/{hash}', [VerificaEmailController::class, 'conferma'])
|
||||
->middleware(['signed', 'throttle:6,1'])
|
||||
->whereNumber('id')
|
||||
->name('verification.verify');
|
||||
|
||||
// Home Dashboard
|
||||
Route::get('/', Home::class)->name('dashboard');
|
||||
// Raggiungibili da chi è entrato ma non ha ancora confermato l'email: senza
|
||||
// queste non potrebbe confermarla, correggere un indirizzo sbagliato, o —
|
||||
// se è l'amministratore — configurare la posta che deve mandargli il link.
|
||||
Route::middleware('auth')->group(function () {
|
||||
|
||||
// Profilo personale (ogni utente loggato)
|
||||
Route::get('profilo', Profile::class)->name('profile');
|
||||
@@ -81,6 +90,21 @@ Route::middleware('auth')->group(function () {
|
||||
Route::get('cambia-password', [PasswordChangeController::class, 'show'])->name('password.change');
|
||||
Route::post('cambia-password', [PasswordChangeController::class, 'store'])->name('password.change.store');
|
||||
|
||||
Route::get('conferma-email', [VerificaEmailController::class, 'avviso'])->name('verification.notice');
|
||||
Route::post('conferma-email', [VerificaEmailController::class, 'invia'])
|
||||
->middleware('throttle:6,1')
|
||||
->name('verification.send');
|
||||
|
||||
Route::get('impostazioni/posta', PostaElettronica::class)
|
||||
->middleware('permission:settings.manage')
|
||||
->name('posta.edit');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'verified'])->group(function () {
|
||||
|
||||
// Home Dashboard
|
||||
Route::get('/', Home::class)->name('dashboard');
|
||||
|
||||
// Territori — visualizzazione (lista + dettaglio) per tutti gli utenti
|
||||
// operativi, cioè chi può assegnare i territori.
|
||||
Route::middleware('permission:territori.assign')->group(function () {
|
||||
|
||||
Reference in New Issue
Block a user