query("SELECT * FROM home_users WHERE email = :email"); $db->bind(':email', $email); $existing = $db->single(); $userModel = new User(); if ($existing) { $data = [ 'name' => $existing['name'] ?: $name, 'email' => $email, 'is_admin' => 1, 'status' => 'Active', 'projects' => ModuleService::getAll() ? array_keys(ModuleService::getAll()) : ['dinos','plants','storymachine','cooles-feature','admin-tools','test'] ]; if (!empty($password)) { $data['password'] = $password; } $userModel->save($data, $existing['id']); echo "✓ Admin-Rechte für {$email} erfolgreich aktualisiert (ID: {$existing['id']})!\n"; } else { if (empty($password)) { $password = bin2hex(random_bytes(6)); echo "Hinweis: Zufälliges Initial-Passwort generiert: {$password}\n"; } $data = [ 'name' => $name, 'email' => $email, 'password' => $password, 'is_admin' => 1, 'status' => 'Active', 'projects' => array_keys(ModuleService::getAll()) ]; $userModel->save($data); echo "✓ Neuer Admin-Benutzer {$email} erfolgreich angelegt!\n"; } break; case 'list-users': $userModel = new User(); $users = $userModel->getAll(); echo sprintf("%-4s | %-15s | %-28s | %-6s | %-8s | %s\n", "ID", "Name", "E-Mail", "Admin", "Status", "Module"); echo str_repeat("-", 80) . "\n"; foreach ($users as $u) { echo sprintf( "%-4s | %-15s | %-28s | %-6s | %-8s | %s\n", $u['id'], substr($u['name'], 0, 15), substr($u['email'], 0, 28), $u['is_admin'] ? 'YES' : 'no', $u['status'], implode(',', $u['projects'] ?? []) ); } break; case 'create-invite': $note = $argv[2] ?? 'CLI-Generated'; $projects = isset($argv[3]) ? explode(',', $argv[3]) : array_keys(ModuleService::getAll()); $invModel = new Invitation(); $token = $invModel->create($projects, $note, 1, null); $baseUrl = rtrim(Config::get('BASE_URL', 'https://philippurbschat.de/'), '/'); echo "✓ Einladungslink generiert:\n"; echo " URL: {$baseUrl}/register?token={$token}\n"; echo " Module: " . implode(', ', $projects) . "\n"; break; case 'help': default: echo "PhilCore CLI Admin Tool\n"; echo "Verwendung:\n"; echo " php home/bin/admin.php set-admin [email] [password] [name]\n"; echo " php home/bin/admin.php list-users\n"; echo " php home/bin/admin.php create-invite [notiz] [projekte,kommasepariert]\n"; break; }