125 lines
4.8 KiB
Markdown
125 lines
4.8 KiB
Markdown
# PHP_AdminTool_Projekt
|
||
|
||
Dieses Repository enthält das gemeinsame PHP AdminTool, das auf IIS unter Windows betrieben wird und über LDAP/AD, SNMP und PowerShell administrative Aufgaben ermöglicht. Das Projekt wird von mehreren Entwicklern gepflegt und folgt einem klar definierten Workflow, um Qualität, Stabilität und Nachvollziehbarkeit sicherzustellen.
|
||
|
||
Ein zentraler Bestandteil der Arbeit mit diesem Repository ist der verbindliche Gitea-Workflow im Wiki.
|
||
|
||
|
||
**Hinweis:** Der [Gitea-Workflow](https://git.eckertplayground.de/taarly/PHP_AdminTool_Projekt/wiki) ist zwingend zu lesen und einzuhalten. Er legt fest, wie Branches erstellt, gemerged und getestet werden.
|
||
|
||
---
|
||
|
||
## Überblick
|
||
|
||
Das Projekt dient als webbasiertes Administrationswerkzeug und umfasst unter anderem:
|
||
|
||
- LDAP/AD‑Anbindung (LDAPS)
|
||
- Benutzer- und Gruppenverwaltung
|
||
- SNMP‑Auswertungen
|
||
- PowerShell‑Integration
|
||
- Weboberfläche zur zentralen Administration
|
||
|
||
Die Anwendung läuft in zwei Umgebungen:
|
||
|
||
- Produktion (`main`): https://itfa.schraubenfuzzi.de
|
||
- Test (`develop`): https://test.itfa.schraubenfuzzi.de
|
||
|
||
---
|
||
|
||
## Ordnerstruktur (Auszug)
|
||
|
||
- `app/` – Anwendungscode
|
||
- `public/` – Webroot
|
||
- `config/` – Konfigurationen für LDAP, Systemvariablen usw.
|
||
- `scripts/` – Hilfs- und Bereitstellungsskripte
|
||
- `docs/` – interne Dokumente
|
||
- `.gitignore` – ausgeschlossene Dateien
|
||
|
||
---
|
||
|
||
## Workflow
|
||
|
||
Die Entwicklung folgt einem strengen, verbindlichen Ablauf:
|
||
|
||
1. **Feature‑Branch erstellen** (`feature/name`)
|
||
2. Feature entwickeln, committen, pushen
|
||
3. **PR nach `develop`** für Tests auf der Testinstanz
|
||
- wird vom Autor selbst gemerged
|
||
- Branch bleibt bestehen
|
||
4. Nach bestandenem Test: **PR nach `main`**
|
||
- mit Review
|
||
- Merge per Squash
|
||
- danach wird der Feature‑Branch gelöscht
|
||
|
||
Details stehen im Wiki.
|
||
|
||
**Wichtiger Hinweis:**
|
||
Der komplette Ablauf ist im [Gitea-Workflow](https://git.eckertplayground.de/taarly/PHP_AdminTool_Projekt/wiki) beschrieben und muss befolgt werden.
|
||
|
||
---
|
||
|
||
## Aufgaben
|
||
|
||
| Aufgabe | Benutzer |
|
||
| :---- | :---- |
|
||
| Benutzer und Gruppen über LDAP anzeigen | Jens E (@blaerf), Stefan W (@viperion) |
|
||
| SNMP Serverstatus abfragen / anzeigen |Thomas G (@tg95) |
|
||
| PHP-Powershell Anbindung | Marco Z (@Taarly) |
|
||
| Powershell Script für einzelne Benutzer und CSV Import | Alle Fisis |
|
||
| UI/UX anpassen | Yasin B (@Muchentuchen), Alexander M (@Alexander), Torsten J (@tojacobs) |
|
||
|
||
---
|
||
|
||
## Dokumentation
|
||
|
||
Alle weiteren Informationen wie Regeln, technische Details, Konzepte und Anleitungen befinden sich im Wiki:
|
||
|
||
`Wiki → Gitea‑Workflow`
|
||
`Wiki → Implementierung / LDAP / IIS / Setup`
|
||
|
||
Dieser Bereich muss von allen Entwicklern gelesen werden, bevor am Projekt gearbeitet wird.
|
||
|
||
---
|
||
|
||
## PowerShell Integration (Benutzererstellung)
|
||
|
||
Die Weboberfläche nutzt PowerShell-Skripte, um Active Directory Benutzer anzulegen. Damit dies funktioniert, sind folgende Voraussetzungen erforderlich:
|
||
|
||
- Der Webserver läuft auf Windows und PHP kann PowerShell ausführen (`powershell` oder `pwsh`).
|
||
- Die PowerShell-Module `ActiveDirectory` müssen installiert (RSAT) und verfügbar sein.
|
||
- Der Benutzer, unter dem der Webserver läuft, muss ausreichende Rechte besitzen, um `New-ADUser` und `Add-ADGroupMember` auszuführen.
|
||
- Im `config/config.php` kann `powershell.dry_run` auf `true` gesetzt werden, um Tests ohne Änderungen durchzuführen.
|
||
|
||
Konfigurationsoptionen (in `config/config.php`):
|
||
- `powershell.exe`: Name oder Pfad zur PowerShell-Executable (standard `powershell`).
|
||
- `powershell.script_dir`: Pfad zu den PowerShell-Skripten (standard `scripts/powershell`).
|
||
- `powershell.execution_policy`: Auszuführende ExecutionPolicy (z. B. `Bypass`).
|
||
- `powershell.dry_run`: Wenn `true`, werden keine echten AD-Änderungen durchgeführt; das Skript meldet nur, was es tun würde.
|
||
|
||
Die grundlegende Funktionalität wurde mit folgenden Komponenten implementiert:
|
||
- `public/api/create_user.php`: API-Endpoint zur Erstellung eines einzelnen Benutzers.
|
||
- `public/api/create_users_csv.php`: API-Endpoint zur Erstellung mehrerer Benutzer aus CSV.
|
||
- `scripts/powershell/create_user.ps1`: PowerShell-Skript zum Erstellen eines einzelnen Benutzers.
|
||
- `scripts/powershell/create_users_csv.ps1`: PowerShell-Skript zum Erstellen mehrerer Benutzer aus CSV.
|
||
|
||
Bitte testen zuerst mit `powershell.dry_run = true` und prüfen sie die resultierenden Meldungen in UI.
|
||
|
||
|
||
## Mitwirken
|
||
|
||
Wer etwas ändern oder erweitern möchte:
|
||
|
||
- Branch vom aktuellen Stand erstellen
|
||
- Entwickeln, Committen, Pushen
|
||
- PR zuerst nach `develop`, später nach bestandenen Tests nach `main`
|
||
- Reviewer zuweisen (für `main`)
|
||
|
||
Nur tested und reviewed Code gelangt in die Produktion.
|
||
|
||
---
|
||
|
||
## Ziel
|
||
|
||
Das AdminTool soll eine wartbare, erweiterbare und zuverlässige Verwaltungsoberfläche bieten, die zentrale Aufgaben des AD‑Umfelds über eine moderne Weboberfläche ermöglicht.
|
||
|