M3 Tenant-Aufloesung per App-Session ergaenzen
- Mandantenauswahl fuer Benutzer mit mehreren Tenants bauen - feste Tenant-Domains ohne Wildcard-Abhaengigkeit vorbereiten - Login, Backfill, Smoke-Checks und M3-Dokumentation aktualisieren
This commit is contained in:
@@ -89,6 +89,7 @@ $ownerEmailNorm = m3_email_norm(getenv('M3_DEFAULT_TENANT_OWNER_EMAIL') ?: null)
|
||||
$stats = [
|
||||
'applied_migrations' => count($applied),
|
||||
'participants' => 0,
|
||||
'stale_participants_removed' => 0,
|
||||
'users' => 0,
|
||||
'memberships' => 0,
|
||||
];
|
||||
@@ -154,7 +155,8 @@ try {
|
||||
email = VALUES(email),
|
||||
email_norm = VALUES(email_norm),
|
||||
paypal_name = VALUES(paypal_name),
|
||||
active = VALUES(active)'
|
||||
active = VALUES(active),
|
||||
legacy_mitarbeiter_id = VALUES(legacy_mitarbeiter_id)'
|
||||
);
|
||||
$upsertMembership = $pdo->prepare(
|
||||
'INSERT INTO tenant_memberships (tenant_id, user_id, role, status, joined_at)
|
||||
@@ -206,6 +208,18 @@ try {
|
||||
$stats['memberships']++;
|
||||
}
|
||||
|
||||
$removeStaleParticipants = $pdo->prepare(
|
||||
'DELETE p
|
||||
FROM participants p
|
||||
LEFT JOIN kl_Mitarbeiter m
|
||||
ON m.MitarbeiterID = p.legacy_mitarbeiter_id
|
||||
WHERE p.tenant_id = ?
|
||||
AND p.legacy_mitarbeiter_id IS NOT NULL
|
||||
AND m.MitarbeiterID IS NULL'
|
||||
);
|
||||
$removeStaleParticipants->execute([$tenantId]);
|
||||
$stats['stale_participants_removed'] = $removeStaleParticipants->rowCount();
|
||||
|
||||
$pdo->commit();
|
||||
} catch (Throwable $e) {
|
||||
$pdo->rollBack();
|
||||
@@ -217,5 +231,6 @@ echo "M3 default tenant backfill complete.\n";
|
||||
echo "Tenant: {$tenantSlug}\n";
|
||||
echo "Applied migrations: {$stats['applied_migrations']}\n";
|
||||
echo "Participants mirrored: {$stats['participants']}\n";
|
||||
echo "Stale participants removed: {$stats['stale_participants_removed']}\n";
|
||||
echo "Users upserted: {$stats['users']}\n";
|
||||
echo "Memberships upserted: {$stats['memberships']}\n";
|
||||
|
||||
Reference in New Issue
Block a user