mage-fxcoding9.de Get a license
← All extensions
MAGENTO 2v0.6.0

Whistle Portal

AlpenFX Whistle Portal (Magento 2)

DSGVO-konformes, anonymes Hinweisgebersystem (EU-Richtlinie 2019/1937 / LkSG-Beschwerdeverfahren) für Magento 2.

Magento-2-Gegenstück zum Shopware-Plugin alpenfx-whistle-portal aus der AlpenFX-Extension-Sammlung.

Funktionsumfang

  • Anonyme Meldung ohne Konto – es werden weder IP-Adresse noch Identität gespeichert. Eigene Speicherung in alpenfx_whistle_report ohne Bezug zu Kunden- oder Bestelldaten.
  • Verschlüsselter Meldungsinhalt at rest über Magento\Framework\Encryption\EncryptorInterface. Statusabfrage ausschließlich über ein pseudonymes Vorgangs-Token + Zugriffsschlüssel (nur als Hash gespeichert) – keine Kundensession.
  • Fristenmanagement – 7-Tage-Eingangsbestätigung und 3-Monats-Rückmeldung. Fälligkeiten werden bei Eingang berechnet und gespeichert; die Berechnung liegt in einem reinen, testgetriebenen DeadlineCalculator.
  • Fall-Workflow im Admin (received → in_review → measure → closed) mit Transitionsprüfung, internen Notizen und Antwort an die meldende Person über einen pseudonymen Kanal ohne De-Anonymisierung. ACL AlpenFX_WhistlePortal::*.
  • Drei Frontend-Oberflächen – serverseitig gerendertes Melde- und Statusformular (Luma + Hyvä, framework-frei) sowie GraphQL-Mutation/-Query und REST-Endpunkte.
  • Audit-Trail – jede Statusänderung und jede Meldung wird über AlpenFX\AuditTrail\Api\AuditTrailServiceInterface revisionssicher protokolliert (harte Abhängigkeit auf alpenfx/module-audit-trail).
  • Leichter Spam-Schutz – Honeypot-Feld + Rate-Limit pro Kanal, ohne die Anonymität zu beeinträchtigen.

Storefront-URLs

| Zweck | URL | | ---------------- | ------------------------- | | Meldeformular | /whistle/report/index | | Statusabfrage | /whistle/report/status | | Admin-Fallqueue | Whistle Portal → Whistleblower Reports (alpenfx_whistle/report/index) |

API

GraphQL:

mutation {
    submitWhistleReport(input: {
        subject: "…", content: "…", category: "labor"
    }) { case_token access_key status acknowledge_due_at feedback_due_at }
}

query {
    whistleReportStatus(case_token: "WP-2026-XXXXXXXX", access_key: "…") {
        status category acknowledge_due_at feedback_due_at reply
    }
}

REST (guest):

  • POST /V1/alpenfx/whistle/report – Meldung einreichen
  • POST /V1/alpenfx/whistle/report/status – Status abfragen

Installation

composer require alpenfx/module-whistle-portal
bin/magento module:enable AlpenFX_AuditTrail AlpenFX_WhistlePortal
bin/magento setup:upgrade
bin/magento setup:di:compile

Entwicklung

Das Modul wird als Git-Submodul in das magento2-Hauptprojekt eingebunden (app/code/AlpenFX/WhistlePortal). CI (.gitlab-ci.yml) prüft Lint, PHPUnit, PHPStan, Magento Coding Standard und Magento-Kompatibilität – die geschwister Abhängigkeit alpenfx/module-audit-trail wird dabei per Job-Token geklont. fx-deploy.yaml steuert die Veröffentlichung auf fx-base.dev.

Lizenz

Proprietär — © Felix Astner Software. Siehe LICENSE.

Angaben zu Rechtsvorgaben beziehen sich auf die Funktion der Erweiterung. Ob ein Shop einer Vorgabe genügt, hängt von seiner Konfiguration und seinem Einsatz ab und liegt beim Betreiber. Keine Rechtsberatung.