Wiki auf aktuellen Stand gebracht

blaerf 2025-11-29 13:35:54 +01:00
parent 18efbfafba
commit 29ce3e41aa
5 changed files with 63 additions and 23 deletions

@ -2,7 +2,7 @@
Die IT-Abteilung legt neue Benutzerkonten derzeit manuell im Active Directory an. Dieser Vorgang ist zeitintensiv, fehleranfällig und erschwert eine effiziente Massenverarbeitung. Auch die Serveradministration erfolgt überwiegend reaktiv. Um diese Abläufe zu verbessern, entsteht ein webbasiertes Verwaltungstool, das die Benutzeranlage automatisiert und zentrale Wartungsfunktionen bereitstellt.
## Projektziel
## Projektziel (Muss-Anforderungen)
Ziel ist die Entwicklung eines Administrationstools zur:
- automatisierten Anlage und Bearbeitung von Active-Directory-Benutzern,
- zentralen Ausführung von Serverwartungen.
@ -11,6 +11,17 @@ Die Umsetzung erfolgt in HTML, CSS und PHP. Die Kommunikation mit dem Active Dir
## Funktionsumfang
### Aktueller Implementierungsstand
| Feature | Status | Kommentar |
|----------------------------------|-------------------|---------------------------------------------|
| LDAP-Login (Administrator) | implementiert | Login gegen AD-Domäne über LDAP/LDAPS |
| Server-Monitoring (SNMP) | in Arbeit / geplant | Basis laut Implementierungshandbuch definiert |
| Einzelne Benutzererstellung | geplant | Schnittstelle über PowerShell vorgesehen |
| CSV-Massenimport | geplant | Anforderungen beschrieben, noch keine UI |
| Logging (Aktionen/Fehler) | geplant | Konzept definiert, technische Umsetzung offen |
### Benutzerverwaltung
- Anlage neuer Benutzer über Eingabefelder
- CSV-Import für Massenverarbeitungen
@ -60,7 +71,7 @@ Die Umsetzung erfolgt in HTML, CSS und PHP. Die Kommunikation mit dem Active Dir
---
# Erweiterungsmöglichkeiten
# Erweiterungsmöglichkeiten (Kann-Anforderungen)
## Ausführliches Logging
Ein integriertes Logging ermöglicht die Nachvollziehbarkeit aller Aktionen:

@ -22,7 +22,7 @@ Die vollständige Struktur ist hier dokumentiert: [Projektstruktur und Best Prac
Regeln:
- Öffentlich zugängliche Dateien nur in `public/`.
- Alle Klassen in `src/`.
- Alle Klassen in `app/`.
- Keine Konfigurationswerte hart im Code.
---
@ -44,12 +44,13 @@ Beispiel:
```php
<?php
namespace App\Services\Ldap;
namespace SchoolApp\User;
class UserService
class LdapDirectoryService
{
// ...
}
```
---
@ -194,6 +195,10 @@ throw new UserNotFoundException("User not found");
## 11. Kommentare & PHPDoc
- Kommentare erklären *warum*, nicht *was*.
- Jeder `public` Service und jeder `public` Controller-Endpunkt bekommt einen PHPDoc-Block.
- `@param` und `@return` werden konsequent gesetzt, auch bei skalarer Typisierung (für phpDocumentor).
- Bei Methoden, die AD ändern (Benutzer anlegen, Gruppen zuweisen, Skripte triggern): kurzer Hinweis auf Seiteneffekte.
Schlecht:

@ -12,6 +12,12 @@ Der `develop`-Branch stellt den aktuellen Teststand bereit und ist erreichbar un
- Test (`develop`): https://test.itfa.schraubenfuzzi.de
**Kurzüberblick:**
feature/* → Pull Request nach `develop` → Testsystem
erfolgreich getestet → Pull Request nach `main` → Review → Produktion
---
## Gitea Workflow für Autoren

@ -2,6 +2,13 @@
Willkommen im Wiki unseres PHP-Projekts.
Dieses Projekt ist ein Admin-Tool für:
- LDAP-Login gegen das Active Directory
- Server-Monitoring über SNMP
- (geplant) AD-Benutzeranlage einzeln und per CSV-Import
- (geplant) PowerShell-Wartungsroutinen
An dieser Stelle können wir alle Ideen und Informationen zu unserem Projekt sammeln.
Zur Zeit sind nur unter `Anforderungen-und-Ziele`, `Windows Server Setup`, `Projektstruktur und Best Practices`, `Gitea-Workflow` und `Coding-Guidelines-PHP` Inhalte hinterlegt. Nichts davon ist in Stein
@ -94,4 +101,3 @@ Details: [[Richtlinien-für-Screenshots-und-Dokumentation]]
---
Stand: 15.11.2025

@ -40,6 +40,8 @@ ad-admin-panel\
├── .gitignore
└── README.md
```
Hinweis: Die oben dargestellte Struktur ist das Zielbild.
Im aktuellen Stand des Repositories sind einige Ordner (z. B. `Models`, `Helpers`, `docs`) noch nicht vollständig belegt.
---
@ -61,17 +63,17 @@ Sicherheit. Alles, was sensibel ist (Config, PowerShell, Logs), liegt *außerhal
---
### **app\**
### **app/**
Hier liegt die komplette PHP-Anwendungslogik.
#### **app\Controllers\**
### **app/Controllers/**
- Verarbeiten Requests aus dem Frontend
- Rufen passende Services auf
- Geben Views oder JSON zurück
Beispiel: `UserController.php` zeigt Benutzerliste an oder verarbeitet Formulare.
#### **app\Services\**
### **app/Services/**
Hier steckt die "Fachlogik" des Projekts.
- keine HTML-Ausgabe
@ -79,28 +81,28 @@ Hier steckt die "Fachlogik" des Projekts.
Unterordner:
**Ldap\**
### **Ldap/**
- LDAP-Verbindungen
- User anlegen/ändern/löschen
- Passwörter setzen
- Gruppen verwalten
**Powershell\**
### **Powershell/**
- PHP-Wrapper für `.ps1`-Skripte
- Benutzerverwaltung per AD-Cmdlets
**Snmp\**
### **Snmp/**
- SNMP-Status auslesen
- CPU/RAM/Platten/etc. abrufen
#### **app\Models\**
### **app/Models/**
Reine Datenobjekte, z.B.:
- `User.php`
- `ServerStatus.php`
Hier werden keine Aktionen ausgeführt nur Struktur & Daten.
#### **app\Helpers\**
### **app/Helpers/**
Werkzeuge für:
- Validation
- kleine Utility-Funktionen
@ -108,24 +110,24 @@ Werkzeuge für:
---
### **config\**
### **config/**
Globale Einstellungen.
**config.example.php**
liegt im Repo
enthält die Struktur, aber keine Passwörter
**config.php**
### **config.php**
echte Config
kommt in `.gitignore`
enthält LDAP-Credentials, SNMP-Settings, Pfade usw.
---
### **scripts\**
### **scripts/**
Nicht-öffentliche Skripte, die vom PHP-Code aufgerufen werden.
#### **scripts\powershell\**
### **scripts/powershell/**
Hier liegen alle `.ps1` Dateien:
- `New-AdUser.ps1`
@ -137,15 +139,15 @@ Diese Skripte laufen auf dem Server **niemals im Webroot**.
---
### **storage\**
### **storage/**
Dynamische Dateien, die während der Laufzeit entstehen.
#### **storage\logs\**
#### **storage/logs/**
- PHP-Logs
- Fehlerprotokolle
- Aktionen (z.B. wer welchen User angelegt hat)
#### **storage\uploads\**
#### **storage/uploads/**
- hochgeladene CSV-Dateien für Massenimporte
- ggf. später Export-Dateien
@ -154,7 +156,7 @@ Dieser Ordner wird **nie** versioniert und kommt in `.gitignore`.
---
### **docs\**
### **docs/**
Projektdokumentation.
Hier können alle Markdown-Dokumente rein:
@ -185,6 +187,16 @@ Im Hauptverzeichnis des Repositories liegt eine `.gitignore`-Datei. Sie sorgt da
---
## 1.2 Namespaces in diesem Projekt
- `App\Controllers` für Controller-Klassen
- `App\Services\Ldap`, `App\Services\Powershell`, `App\Services\Snmp` für technische Services
- `App\Models` für Datenobjekte (geplant)
Autoloading erfolgt über Composer (PSR-4).
---
# 2. Struktur auf dem IIS-Server
```