KI-Unterstützung: neuer Einstellungen-Tab (Anmeldung, Guthaben) und Button im Planungs-Tab, der Einheiten+Stunden als JSON an ein neues PHP-Backend (ai-backend/) sendet und die Antwort als prüfbare Vorschlagsliste zurückbringt. Provider-Aufruf, Guthabenverwaltung und Abrechnung nach echten Token-Kosten laufen serverseitig, der Desktop-Client sieht nie einen LLM-API-Key. Zentral abgesichert: eine von der KI zurückgegebene Stunden-Id, die zu keiner echten Lesson der Einheit passt, wird nie als Update übernommen, sondern immer als neue Stunde behandelt. Kompetenzkatalog-Import (8.1.2): JSON-Export/Import für Kompetenzkataloge.
30 lines
1.0 KiB
PHP
30 lines
1.0 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
// CLI-Helfer zum Anlegen des ersten Nutzers (oder weiterer Lehrer später), siehe README.md.
|
|
// Aufruf: php scripts/create-user.php <benutzername> <passwort> [startguthaben_usd]
|
|
|
|
require_once __DIR__ . '/../db.php';
|
|
|
|
if (PHP_SAPI !== 'cli') {
|
|
fwrite(STDERR, "Nur über die Kommandozeile ausführen.\n");
|
|
exit(1);
|
|
}
|
|
|
|
[, $username, $password, $startBalance] = array_pad($argv, 4, null);
|
|
if ($username === null || $password === null) {
|
|
fwrite(STDERR, "Aufruf: php scripts/create-user.php <benutzername> <passwort> [startguthaben_usd]\n");
|
|
exit(1);
|
|
}
|
|
|
|
$config = require __DIR__ . '/../config.php';
|
|
$pdo = ai_backend_db($config);
|
|
|
|
$hash = password_hash($password, PASSWORD_DEFAULT);
|
|
$balance = $startBalance !== null ? (float) $startBalance : 0.0;
|
|
|
|
$stmt = $pdo->prepare('INSERT INTO users (username, password_hash, balance_usd) VALUES (?, ?, ?)');
|
|
$stmt->execute([$username, $hash, $balance]);
|
|
|
|
echo "Nutzer '$username' angelegt, Startguthaben: " . number_format($balance, 2) . " USD.\n";
|