[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.
This commit is contained in:
DevEnv nis2-agile
2026-06-13 08:39:32 +02:00
parent e04eba62c1
commit e0204dbaa7
+7 -1
View File
@@ -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]){