Skip to content

Fix #48: Optionaler Token-Ablauf mit Toggle und Ablaufprüfung#49

Open
skerbis wants to merge 3 commits into
mainfrom
fix-issue-48-token-ablauf-optional
Open

Fix #48: Optionaler Token-Ablauf mit Toggle und Ablaufprüfung#49
skerbis wants to merge 3 commits into
mainfrom
fix-issue-48-token-ablauf-optional

Conversation

@skerbis

@skerbis skerbis commented Jun 4, 2026

Copy link
Copy Markdown
Member

Bezug

Fixes #48

Was wurde umgesetzt?

  • Optionales Ablaufdatum für API-Tokens (expires_at, nullable) ergänzt.
  • Bestehende ungültige Werte (0000-00-00 00:00:00 / leer) werden auf NULL normalisiert.
  • Token-Validierung berücksichtigt Ablaufdatum serverseitig (abgelaufene Tokens werden nicht autorisiert).
  • Backend-Formular erweitert:
    • Ablauf aktiv Checkbox
    • Ablaufdatum als YForm-Datetime
    • Ablaufdatum wird per Toggle ein-/ausgeblendet.
  • JS-Einbindung sauber über boot.php nur auf page=api/token.
  • Bei deaktiviertem Ablauf wird expires_at zuverlässig auf NULL gesetzt.

Wichtige Hinweise

  • Rückwärtskompatibel: Ohne aktivierten Ablauf bleibt das bisherige Verhalten erhalten.
  • Keine Ausgabe sensibler Tokenwerte in diesem PR-Text.

Tests / Verifikation

  • RexStan auf den geänderten Kern-Dateien:
    • redaxo/src/addons/api/lib/Token.php -> OK
    • redaxo/src/addons/api/pages/token.php -> OK
  • API-Verifikation (ohne Token im Report zu zeigen):
    • mit Token auf erlaubtem Scope-Endpunkt (/api/search_it/capabilities) -> 200
    • ohne Token auf demselben Endpunkt -> 401
  • Manuelle UI-Prüfung:
    • Toggle Ablauf aktiv blendet Ablaufdatum ein/aus.
    • Ablaufdatum wird gespeichert; deaktivierter Ablauf setzt expires_at auf NULL.

Copilot AI review requested due to automatic review settings June 4, 2026 22:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Erweitert das API-Token-Handling um ein optionales Ablaufdatum (expires_at) inkl. Backend-UI-Toggle und serverseitiger Berücksichtigung bei der Token-Autorisierung, um Tokens nach Ablauf automatisch nicht mehr zu akzeptieren (Fix #48).

Changes:

  • DB-Schema um nullable expires_at ergänzt und Altwerte (0000-00-00 00:00:00/leer) auf NULL normalisiert.
  • Token-Lookup/Autorisierung um Ablauf-Prüfung erweitert.
  • Backend-Maske um „Ablauf aktiv“ + Datetime-Feld ergänzt, inkl. JS-Toggle (nur auf api/token geladen).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
pages/token.php YForm-Formular um Ablauf-UI erweitert und expires_at nach Save normalisiert/gesetzt.
lib/Token.php Token-Model um expires_at/Expiry-Checks ergänzt und Token-Lookup um Ablauf-Filter erweitert.
install.php DB-Spalte expires_at angelegt und Altwerte auf NULL migriert.
boot.php Lädt das neue Backend-JS nur auf der Token-Seite.
assets/js/token-expiry.js Implementiert Toggle/Enable-Disable-Logik für das Ablaufdatum im Backend.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/Token.php Outdated
Comment thread lib/Token.php
Comment thread pages/token.php Outdated
Comment thread assets/js/token-expiry.js Outdated
Comment thread install.php
@skerbis

skerbis commented Jun 4, 2026

Copy link
Copy Markdown
Member Author

Kleiner Nachtrag im selben PR: Statusanzeige auf der Token-Seite korrigiert.

  • [translate:active]-Darstellung behoben
  • Token-List-Formatter nutzt jetzt addon-spezifische Keys (api_active / api_inactive)
  • fehlende Übersetzungen in lang/de_de.lang ergänzt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automatische Deaktivierung

2 participants