feat: Implement API for managing network connections, device types, and uploads
This commit is contained in:
@@ -1,2 +1,83 @@
|
||||
<?php
|
||||
// Single-User-Authentifizierung (Login, Session-Handling)
|
||||
/**
|
||||
* app/lib/auth.php
|
||||
*
|
||||
* Single-User-Authentifizierung
|
||||
* - Login / Logout
|
||||
* - Session-Check
|
||||
* - Optional: Passwortschutz für Admin-Tool
|
||||
*
|
||||
* KEIN Mehrbenutzer-System
|
||||
*/
|
||||
|
||||
/* =========================
|
||||
* Login prüfen
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Prüft, ob der Benutzer eingeloggt ist
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function isAuthenticated(): bool
|
||||
{
|
||||
// TODO: Session-Variable definieren, z.B. $_SESSION['auth'] === true
|
||||
return isset($_SESSION['auth']) && $_SESSION['auth'] === true;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Login durchführen
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Führt einen Login durch
|
||||
*
|
||||
* @param string $password
|
||||
* @return bool
|
||||
*/
|
||||
function login(string $password): bool
|
||||
{
|
||||
// TODO: Passwort aus config.php vergleichen
|
||||
// TODO: Passwort-Hash verwenden (password_hash / password_verify)
|
||||
|
||||
/*
|
||||
if (password_verify($password, ADMIN_PASSWORD_HASH)) {
|
||||
$_SESSION['auth'] = true;
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Logout
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Loggt den Benutzer aus
|
||||
*/
|
||||
function logout(): void
|
||||
{
|
||||
// TODO: Session-Variablen löschen
|
||||
// unset($_SESSION['auth']);
|
||||
|
||||
// TODO: Optional komplette Session zerstören
|
||||
// session_destroy();
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Zugriff erzwingen
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Erzwingt Login, sonst Redirect
|
||||
*/
|
||||
function requireAuth(): void
|
||||
{
|
||||
if (!isAuthenticated()) {
|
||||
// TODO: Redirect auf Login-Seite
|
||||
// header('Location: /login.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +1,169 @@
|
||||
<?php
|
||||
// Hilfsfunktionen (Escaping, Redirects, Formatierungen)
|
||||
/**
|
||||
* app/lib/helpers.php
|
||||
*
|
||||
* Zentrale Hilfsfunktionen
|
||||
* - Output-Escaping
|
||||
* - Redirects
|
||||
* - Flash-Messages
|
||||
* - Request-Helper
|
||||
* - Allgemeine Utilities
|
||||
*
|
||||
* KEINE Business-Logik
|
||||
*/
|
||||
|
||||
/* =========================
|
||||
* Output / Sicherheit
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* HTML-Escaping
|
||||
*
|
||||
* @param string|null $value
|
||||
* @return string
|
||||
*/
|
||||
function e(?string $value): string
|
||||
{
|
||||
// TODO: htmlspecialchars mit ENT_QUOTES + UTF-8
|
||||
return '';
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Redirects
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* HTTP Redirect
|
||||
*
|
||||
* @param string $url
|
||||
* @param int $code
|
||||
*/
|
||||
function redirect(string $url, int $code = 302): void
|
||||
{
|
||||
// TODO: header("Location: ...")
|
||||
exit;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Flash Messages
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Flash-Message setzen
|
||||
*
|
||||
* @param string $type (success, error, info)
|
||||
* @param string $message
|
||||
*/
|
||||
function flash(string $type, string $message): void
|
||||
{
|
||||
// TODO: In $_SESSION speichern
|
||||
}
|
||||
|
||||
/**
|
||||
* Flash-Messages abrufen & löschen
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getFlashes(): array
|
||||
{
|
||||
// TODO: Aus Session lesen und löschen
|
||||
return [];
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Request Helper
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* POST-Wert holen
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
function post(string $key, $default = null)
|
||||
{
|
||||
// TODO: $_POST prüfen
|
||||
return $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* GET-Wert holen
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
function get(string $key, $default = null)
|
||||
{
|
||||
// TODO: $_GET prüfen
|
||||
return $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüfen, ob Request POST ist
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function isPost(): bool
|
||||
{
|
||||
// TODO: $_SERVER['REQUEST_METHOD']
|
||||
return false;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Validierung
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Prüft auf leeren Wert
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return bool
|
||||
*/
|
||||
function isEmpty($value): bool
|
||||
{
|
||||
// TODO: trim + empty
|
||||
return false;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Pfade / URLs
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Baut eine URL zur App
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
function url(string $path = ''): string
|
||||
{
|
||||
// TODO: Base-URL aus config.php
|
||||
return $path;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Debug / Entwicklung
|
||||
* ========================= */
|
||||
|
||||
/**
|
||||
* Dump & Die (nur Dev)
|
||||
*
|
||||
* @param mixed $value
|
||||
*/
|
||||
function dd($value): void
|
||||
{
|
||||
// TODO: var_dump / print_r + exit
|
||||
exit;
|
||||
}
|
||||
|
||||
/* =========================
|
||||
* Sonstiges
|
||||
* ========================= */
|
||||
|
||||
// TODO: Weitere Helfer nach Bedarf
|
||||
// - Datum formatieren
|
||||
// - Bytes → MB
|
||||
// - UUID erzeugen
|
||||
// - SVG-Koordinaten normalisieren
|
||||
|
||||
Reference in New Issue
Block a user