From e0204dbaa76d90828aab904aefc08356a60255ae Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Sat, 13 Jun 2026 08:39:32 +0200 Subject: [PATCH] [DEMO] fix seeder: utente demo via Database::insert (must_change_password default) + must_change_password=0 Eseguito su prod: org 996001 (DataCore Demo) + 996002 (sandbox) seedate. Guard deployato (USR2) e testato end-to-end: read demo 200 (score 75), write demo 403 DEMO_READ_ONLY, auth reale intatta. --- scripts/seed-demo-dataset.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/seed-demo-dataset.php b/scripts/seed-demo-dataset.php index 8bbee49..62742ca 100644 --- a/scripts/seed-demo-dataset.php +++ b/scripts/seed-demo-dataset.php @@ -63,7 +63,13 @@ foreach($TARGETS as $T=>$NAME){ $org=Database::fetchOne("SELECT * FROM organizations WHERE id=?",[$SRC]); copyRow($pdo,'organizations',$org,['id'=>$T,'name'=>$NAME],0,$USERCOLS); - $uid=(int)copyRow($pdo,'users',['email'=>"demo-$T@nis2-demo.local",'full_name'=>"Demo NIS2 $T",'role'=>'org_admin','password_hash'=>password_hash(bin2hex(random_bytes(12)),PASSWORD_DEFAULT),'is_active'=>1],['email'=>"demo-$T@nis2-demo.local"],0,$USERCOLS); + // Utente demo: Database::insert (solo colonne fornite → i default DB si applicano; + // copyRow forzerebbe null sulle NOT NULL con default es. must_change_password). + $uid=(int)Database::insert('users',[ + 'email'=>"demo-$T@nis2-demo.local",'full_name'=>"Demo NIS2 $T",'role'=>'org_admin', + 'password_hash'=>password_hash(bin2hex(random_bytes(12)),PASSWORD_DEFAULT), + 'is_active'=>1,'must_change_password'=>0,'password_version'=>1, + ]); $pdo->prepare("INSERT INTO user_organizations (user_id,organization_id,role) VALUES (?,?,'org_admin')")->execute([$uid,$T]); foreach($PC as [$par,$chi,$fk]){