v2.6.5 (Lyra): Dynamische pad-resolutie, WordPress-stijl docblocks, security-fix wachtwoord, git-historie schoon

- Bug: dashboard toonde 0 content (AdminPluginAPI::getContentDir() gaf relatief pad terug zonder normalisatie)
- Dynamische pad-resolutie: PluginAPIInterface uitgebreid met getProjectRoot/getContentDir/getPluginsDir/getVersionInfo; CMSAPI en AdminPluginAPI implementeren deze universeel
- public/index.php media-serving gebruikt $config['content_dir'] i.p.v. hardcoded /content
- Navigation en Logs plugins halen paden via de API i.p.v. hardcoded dirname(__DIR__)
- WordPress-stijl docblocks toegevoegd voor alle classes, methods, properties en functies (~450 docblocks, @since 2.6.5)
- Security: hardcoded plaintext-wachtwoord 'admin' verwijderd uit AdminAuth.php; bij eerste installatie wordt een cryptografisch veilig wachtwoord gegenereerd (random_bytes, 16 tekens) en eenmalig op het inlogscherm getoond
- Security: git-geschiedenis schoongemaakt (admin.json, admin.json.example, admin-console/config/admin.json verwijderd uit alle commits; filter-branch over alle branches + tags, gc --prune --aggressive)
- README.md, README.en.md, AGENTS.md bijgewerkt
- Test-scripts bijgewerkt naar clean-URL structuur + actuele ARIA-waarden
- Versie verhoogd naar 2.6.5
- Tests: pentest 29/29, WCAG 25/25, functioneel 16/16, enhanced 25/25
This commit is contained in:
2026-08-27 09:05:51 +00:00
parent 74612aefbb
commit d9ea2eee47
38 changed files with 771 additions and 572 deletions
+24 -24
View File
@@ -15,13 +15,13 @@
* "logging.events" configuratiesectie (admin, requests, errors, security,
* content, system).
*
* @since 2.6.4
* @since 2.6.5
*/
class LogManager {
/**
* Event-type voor admin-acties.
*
* @since 2.6.4
* @since 2.6.5
* @var string
*/
const EVENT_ADMIN = 'admin';
@@ -29,7 +29,7 @@ class LogManager {
/**
* Event-type voor request-logging.
*
* @since 2.6.4
* @since 2.6.5
* @var string
*/
const EVENT_REQUESTS = 'requests';
@@ -37,7 +37,7 @@ class LogManager {
/**
* Event-type voor fouten en waarschuwingen.
*
* @since 2.6.4
* @since 2.6.5
* @var string
*/
const EVENT_ERRORS = 'errors';
@@ -45,7 +45,7 @@ class LogManager {
/**
* Event-type voor beveiligingsgebeurtenissen.
*
* @since 2.6.4
* @since 2.6.5
* @var string
*/
const EVENT_SECURITY = 'security';
@@ -53,7 +53,7 @@ class LogManager {
/**
* Event-type voor content-wijzigingen.
*
* @since 2.6.4
* @since 2.6.5
* @var string
*/
const EVENT_CONTENT = 'content';
@@ -61,7 +61,7 @@ class LogManager {
/**
* Event-type voor systeemgebeurtenissen.
*
* @since 2.6.4
* @since 2.6.5
* @var string
*/
const EVENT_SYSTEM = 'system';
@@ -69,7 +69,7 @@ class LogManager {
/**
* De "logging" configuratiesectie, of null indien niet geïnitialiseerd.
*
* @since 2.6.4
* @since 2.6.5
* @var array|null
*/
private static $config = null;
@@ -77,7 +77,7 @@ class LogManager {
/**
* Lazy-initialized PDO-verbinding met de SQLite-database, of null.
*
* @since 2.6.4
* @since 2.6.5
* @var \PDO|null
*/
private static $pdo = null;
@@ -85,7 +85,7 @@ class LogManager {
/**
* Pad naar het SQLite-databasebestand, of null indien niet geïnitialiseerd.
*
* @since 2.6.4
* @since 2.6.5
* @var string|null
*/
private static $dbPath = null;
@@ -96,7 +96,7 @@ class LogManager {
* Slaat de configuratie op en stelt het pad naar de SQLite-database in
* onder `admin/storage/logs`.
*
* @since 2.6.4
* @since 2.6.5
*
* @param array $loggingConfig De "logging" sectie uit config.json.
* @return void
@@ -110,7 +110,7 @@ class LogManager {
/**
* Geeft aan of logging in het algemeen ingeschakeld is.
*
* @since 2.6.4
* @since 2.6.5
*
* @return bool True indien logging ingeschakeld is, anders false.
*/
@@ -125,7 +125,7 @@ class LogManager {
* Controleert eerst of logging in het algemeen ingeschakeld is en
* daarna of het specifieke event aan staat in de configuratie.
*
* @since 2.6.4
* @since 2.6.5
*
* @param string $event Een van de EVENT_* constanten.
* @return bool True indien het event geregistreerd moet worden.
@@ -146,7 +146,7 @@ class LogManager {
* Syslog is een aanvullende output en vervangt nooit de lokale
* opslag, en komt dus nooit als driver terug.
*
* @since 2.6.4
* @since 2.6.5
*
* @return string 'sqlite' of 'file'.
*/
@@ -169,7 +169,7 @@ class LogManager {
* geconfigureerd is, wordt de entry tevens naar de remote syslog-server
* gestuurd. Het IP-adres wordt uit de context of de RequestLogger gehaald.
*
* @since 2.6.4
* @since 2.6.5
*
* @param string $event Event-type (een EVENT_* constante).
* @param string $level Loglevel (info, warning, error, debug).
@@ -215,7 +215,7 @@ class LogManager {
* Bouwt een syslog-bericht op met facility, severity en ident en stuurt
* dit via een UDP-socket. Verbindings- en schrijffouten worden gesilenced.
*
* @since 2.6.4
* @since 2.6.5
*
* @param array $entry De te versturen log-entry.
* @return void
@@ -247,7 +247,7 @@ class LogManager {
* niet beschikbaar is of het schrijven faalt, wordt teruggevallen op
* de file-driver.
*
* @since 2.6.4
* @since 2.6.5
*
* @param array $entry De op te slaan log-entry.
* @return void
@@ -284,7 +284,7 @@ class LogManager {
* Zorgt dat de doelmap bestaat en schrijft de entry met een vaste
* opmaak. Schrijffouten worden gesilenced.
*
* @since 2.6.4
* @since 2.6.5
*
* @param array $entry De toe te voegen log-entry.
* @return void
@@ -308,7 +308,7 @@ class LogManager {
* fout wordt de interne verbinding op null gezet en null teruggegeven,
* zodat de aanroeper kan terugvallen op de file-driver.
*
* @since 2.6.4
* @since 2.6.5
*
* @return \PDO|null PDO-verbinding of null indien SQLite niet beschikbaar/faalt.
*/
@@ -352,7 +352,7 @@ class LogManager {
/**
* Geeft aan of de SQLite PDO-driver beschikbaar is.
*
* @since 2.6.4
* @since 2.6.5
*
* @return bool True indien PDO en de sqlite-driver beschikbaar zijn.
*/
@@ -368,7 +368,7 @@ class LogManager {
* syslog, lpr, news, uucp, cron, authpriv, ftp) en local0 t/m local7.
* Onbekende faciliteiten vallen terug op local0 (16).
*
* @since 2.6.4
* @since 2.6.5
*
* @param string $facility Naam van de facility. Default 'local0' wordt door aanroeper gezet.
* @return int Numerieke facility-waarde.
@@ -391,7 +391,7 @@ class LogManager {
* Ondersteunt debug t/m emergency. Onbekende levels vallen terug op
* info (6). De invoer wordt case-insensitive vergeleken.
*
* @since 2.6.4
* @since 2.6.5
*
* @param string $level Loglevel (debug, info, notice, warning, error, ...).
* @return int Numerieke severity-waarde (0 t/m 7).
@@ -421,7 +421,7 @@ class LogManager {
* Resultaten worden altijd nieuwste eerst geretourneerd (SQLite via
* ORDER BY id DESC, file via array_reverse).
*
* @since 2.6.4
* @since 2.6.5
*
* @param int $limit Aantal terug te geven entries. Default 200.
* @param string|null $event Optioneel event-filter. Default null (geen filter).
@@ -504,7 +504,7 @@ class LogManager {
* Bij de file-driver wordt het logbestand leeggemaakt. Schrijffouten
* worden gesilenced.
*
* @since 2.6.4
* @since 2.6.5
*
* @return void
*/