Admin Tool Projekt für das Fach PHP
Go to file
2025-12-17 10:49:58 +01:00
app test to integrate users 2025-12-13 15:20:47 +01:00
config config/config.php aktualisiert 2025-12-14 06:58:20 +00:00
docs added password validation and a hint to also use the correct password and format 2025-12-17 10:27:31 +01:00
public updated the size of the "in vorschau laden" button 2025-12-17 10:49:58 +01:00
scripts added password validation and a hint to also use the correct password and format 2025-12-17 10:27:31 +01:00
.gitignore Dokumentation erstellt 2025-12-08 05:43:46 +01:00
CHANGELOG.md snmp_update2 (#14) 2025-12-04 03:30:46 +00:00
README.md added password validation and a hint to also use the correct password and format 2025-12-17 10:27:31 +01:00

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 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/ADAnbindung (LDAPS)
  • Benutzer- und Gruppenverwaltung
  • SNMPAuswertungen
  • PowerShellIntegration
  • Weboberfläche zur zentralen Administration

Die Anwendung läuft in zwei Umgebungen:


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. FeatureBranch 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 FeatureBranch gelöscht

Details stehen im Wiki.

Wichtiger Hinweis:
Der komplette Ablauf ist im Gitea-Workflow 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)

Hinweis: Die Passwortanforderungen (Mindestlänge, Kategorien, keine Teile des Benutzernamens) werden beim Erstellen validiert. Die Validierung ist in scripts/powershell/create_users_csv.ps1 implementiert und die Mockup-UI (docs/Mockup/index.html) zeigt die Anforderungen und prüft sie clientseitig.


Dokumentation

Alle weiteren Informationen wie Regeln, technische Details, Konzepte und Anleitungen befinden sich im Wiki:

Wiki → GiteaWorkflow
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.

  • scripts/powershell/check_environment.ps1: Prüft, ob ActiveDirectory-Modul vorhanden ist und zeigt die ausführende Identität an.

API endpoints:

  • public/api/powershell_check.php: Ruft check_environment.ps1 auf und gibt ein JSON-Objekt mit actor, module_installed, can_new_aduser zurück.

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 ADUmfelds über eine moderne Weboberfläche ermöglicht.