feat: Initial commit of KeyHelp Manager module

This commit is contained in:
Kevin Feiler
2025-10-15 22:29:11 +02:00
parent 4df2eddc6a
commit 351da5fe19
8 changed files with 2584 additions and 0 deletions

216
CHANGELOG.md Normal file
View File

@@ -0,0 +1,216 @@
# Changelog
Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/),
und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/).
## [Unreleased]
### Geplant
- Multi-Language Support (Deutsch/Englisch)
- Erweiterte Statistiken im Client Area
- Automatische Backup-Verwaltung
- SSL-Zertifikat-Management über Let's Encrypt
- E-Mail-Account-Verwaltung im Client Area
- Datenbank-Verwaltung im Client Area
- FTP-Account-Management
- Subdomain-Verwaltung
- Ressourcen-Upgrade/Downgrade-Funktionen
- Webhook-Support für Events
## [1.0.0] - 2024-01-15
### Entwickelt von
- **Entwickler:** Kevin Feiler
- **Firma:** AVVGO
- **Website:** https://avvgo.de
### Hinzugefügt
- Initiales Release des KeyHelp Manager WHMCS Provisioning Moduls
- **Account-Verwaltung:**
- Automatische Account-Erstellung nach Zahlungseingang
- Account-Sperrung (Suspend) bei Zahlungsverzug
- Account-Entsperrung (Unsuspend)
- Account-Löschung (Terminate) mit allen Daten
- Passwort-Änderungsfunktion
- **API-Integration:**
- KeyHelp API v2 Unterstützung
- Guzzle HTTP Client für zuverlässige API-Kommunikation
- SSL/TLS-Verschlüsselung für API-Verbindungen
- Konfigurierbare SSL-Zertifikat-Verifizierung
- Umfassendes Error-Handling und Retry-Logik
- **Client Area Features:**
- Übersichtliche Darstellung der Login-Informationen
- KeyHelp Login-URL mit direktem Zugang
- Username und Passwort mit Copy-to-Clipboard-Funktion
- Passwort anzeigen/verbergen Toggle
- Live-Statistiken vom KeyHelp-Server:
- Speicherplatz-Nutzung mit Fortschrittsbalken
- Traffic/Bandbreiten-Nutzung mit Fortschrittsbalken
- Anzahl der Domains
- Anzahl der Datenbanken
- Anzahl der E-Mail-Konten
- Responsive Design für alle Geräte
- Bootstrap-kompatibles Layout
- **Admin-Features:**
- Single Sign-On (SSO) für Admins
- Ein-Klick-Login direkt in den Kunden-Account
- Detailliertes Module-Logging aller API-Calls
- Connection-Test-Funktion für Server-Konfiguration
- Automatische Maskierung sensibler Daten in Logs
- **Automatisierung:**
- Automatische Benutzername-Generierung aus Domain
- Sichere Passwort-Generierung (16 Zeichen, kryptografisch sicher)
- Automatische Speicherung von Account-Details in WHMCS
- Custom Field Management für KeyHelp User-ID
- Rollback-Mechanismen bei fehlgeschlagener Erstellung
- **Sicherheit:**
- API-Key-Verschlüsselung in WHMCS-Datenbank
- SSL/TLS-Unterstützung für alle API-Verbindungen
- Validierung und Sanitization aller Eingaben
- Schutz vor SQL-Injection durch Capsule ORM
- Sichere Session-Token-Generierung für SSO
- Automatische Maskierung von Credentials in Logs
- **Dokumentation:**
- Ausführliche README.md mit Feature-Übersicht
- Detaillierte INSTALLATION.md mit Schritt-für-Schritt-Anleitung
- Umfangreiche Code-Kommentare (Deutsch)
- API-Endpunkt-Dokumentation
- Troubleshooting-Guide
- Best Practices für Sicherheit
- **Entwickler-Tools:**
- Composer.json für Dependency-Management
- .gitignore für sauberes Repository
- PSR-12 Code-Style-Kompatibilität
- Modulare Code-Struktur für einfache Wartung
### Technische Details
- **Mindestanforderungen:**
- PHP 8.3+
- WHMCS 8.13+
- KeyHelp mit API v2
- Guzzle HTTP Client (in WHMCS integriert)
- **Unterstützte KeyHelp API-Endpunkte:**
- `POST /api/v2/users` - Benutzer erstellen
- `GET /api/v2/users/{id}` - Benutzer-Details
- `PUT /api/v2/users/{id}` - Benutzer aktualisieren
- `DELETE /api/v2/users/{id}` - Benutzer löschen
- `POST /api/v2/domains` - Domain hinzufügen
- `GET /api/v2/users/{id}/statistics` - Statistiken abrufen
- `POST /api/v2/sessions` - SSO-Session erstellen
- `GET /api/v2/server/version` - Server-Version (Test)
- **WHMCS-Funktionen:**
- `keyhelpmanager_MetaData()` - Modul-Metadaten
- `keyhelpmanager_ConfigOptions()` - Server-Konfiguration
- `keyhelpmanager_CreateAccount()` - Account erstellen
- `keyhelpmanager_SuspendAccount()` - Account sperren
- `keyhelpmanager_UnsuspendAccount()` - Account entsperren
- `keyhelpmanager_TerminateAccount()` - Account löschen
- `keyhelpmanager_ChangePassword()` - Passwort ändern
- `keyhelpmanager_ClientArea()` - Client-Bereich
- `keyhelpmanager_LoginLink()` - Admin SSO
- `keyhelpmanager_TestConnection()` - Verbindungstest
### Hilfsfunktionen
- `_keyhelpmanager_APIRequest()` - Zentrale API-Request-Funktion
- `_keyhelpmanager_GenerateUsername()` - Username-Generierung
- `_keyhelpmanager_GeneratePassword()` - Passwort-Generierung
- `_keyhelpmanager_SaveAccountDetails()` - Account-Details speichern
- `_keyhelpmanager_GetAccountDetails()` - Account-Details laden
- `_keyhelpmanager_GetUserId()` - KeyHelp User-ID abrufen
- `_keyhelpmanager_UpdateAccountDetail()` - Einzelnes Detail aktualisieren
- `_keyhelpmanager_DeleteAccountDetails()` - Details löschen
- `_keyhelpmanager_GetCustomFieldId()` - Custom Field ID abrufen
- `_keyhelpmanager_FormatBytes()` - Bytes formatieren
- `_keyhelpmanager_CalculatePercent()` - Prozentsatz berechnen
### Templates
- `clientarea.tpl` - Smarty-Template für Client Area mit:
- Bootstrap 3/4 kompatibles Design
- FontAwesome Icons
- Responsive Grid-Layout
- JavaScript-Funktionen für Interaktivität
- Copy-to-Clipboard-Funktionalität
- Passwort-Toggle-Funktion
- Fortschrittsbalken mit Farbcodierung
### Konfigurationsoptionen
- Hostname/IP des KeyHelp-Servers
- API-Key-Verwaltung
- SSL-Aktivierung (On/Off)
- SSL-Zertifikat-Verifizierung (On/Off)
### Bekannte Einschränkungen
- Keine direkte Multi-Language-Unterstützung (nur Deutsch)
- Erweiterte Features wie E-Mail-/DB-Verwaltung nicht implementiert
- Session-Token-Lifetime fest auf 5 Minuten (nicht konfigurierbar)
- Keine automatische Plan/Tarif-Synchronisation
## [0.9.0-beta] - 2024-01-10
### Hinzugefügt
- Beta-Version für interne Tests
- Basis-Funktionalität für Account-Erstellung
- Erste API-Integration
### Geändert
- API-Request-Handling optimiert
- Error-Messages verbessert
### Behoben
- Connection-Timeout-Probleme
- SSL-Verifizierung bei selbstsignierten Zertifikaten
## [0.5.0-alpha] - 2024-01-05
### Hinzugefügt
- Initiale Projekt-Struktur
- Grundlegende Modul-Funktionen
- API-Client-Implementierung
---
## Versionierungsschema
- **Major.Minor.Patch** (z.B. 1.0.0)
- **Major:** Breaking Changes, große neue Features
- **Minor:** Neue Features, abwärtskompatibel
- **Patch:** Bugfixes, kleine Verbesserungen
## Credits
Dieses Modul wurde entwickelt von:
- **Kevin Feiler** - Lead Developer
- **AVVGO** - https://avvgo.de
## Support
- **GitHub Issues:** Für Bug-Reports und Feature-Requests
- **Dokumentation:** Siehe README.md und INSTALLATION.md
- **KeyHelp Forum:** https://forum.keyhelp.de/
- **WHMCS Community:** https://whmcs.community/
## Mitwirken
Contributions sind willkommen! Bitte erstellen Sie einen Pull Request mit:
- Beschreibung der Änderungen
- Tests für neue Features
- Aktualisierung der Dokumentation
- Eintrag in diesem CHANGELOG
---
[Unreleased]: https://github.com/ihr-repo/keyhelpmanager/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/ihr-repo/keyhelpmanager/releases/tag/v1.0.0
[0.9.0-beta]: https://github.com/ihr-repo/keyhelpmanager/releases/tag/v0.9.0-beta
[0.5.0-alpha]: https://github.com/ihr-repo/keyhelpmanager/releases/tag/v0.5.0-alpha