Lizenzserver 2.8.16: kein Abgleich in die Vergangenheit

This commit is contained in:
alientim committed 2026-09-16 22:47:00 +02:00
1 parent 0024a116ce
commit f0f0d05e19
2 files changed
+19 -1

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "tesm-license"
version = "2.8.15"
version = "2.8.16"
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
requires-python = ">=3.11"
dependencies = [
@@ -970,6 +970,24 @@ def lizenz_auf_ticket_setzen(
# gibt etwas -- hier ist nichts zurueckzunehmen.
changes: dict[str, Any] = {"lifetime": True}
else:
# Ein Abgleich, der in die Vergangenheit zeigt, ist kein Abgleich: er
# laesst die Lizenz beim naechsten Heartbeat sofort ablaufen. Das mag
# gewollt sein -- dann heisst es Widerruf und hat einen eigenen Knopf,
# eine eigene Rueckfrage und einen eigenen Eintrag. Hier wird es
# abgewiesen, denn wer "auf die Ticketlaufzeit setzen" drueckt, will
# zwei Angaben zur Deckung bringen und nicht eine Installation
# stilllegen.
# Verglichen wird auf Zeitpunkten, nicht auf Zeichenketten: die
# Lizenzdaten enden auf "Z", ``_now()`` schreibt "+00:00" -- als Text
# sortiert sich das falsch herum.
if lic.parse_iso(str(abweichung["grenze"])) <= datetime.now(timezone.utc):
raise IssuanceError(
"Die Ticketlaufzeit ist bereits abgelaufen "
f"({lic.parse_iso(str(abweichung['grenze'])).strftime('%d.%m.%Y')}) -- ein "
"Abgleich würde diese Lizenz sofort ungültig machen. Verlängern Sie zuerst "
"das Ticket, oder widerrufen Sie die Lizenz bewusst."
)
# Auch aus einer unbefristeten Lizenz wird hier wieder eine befristete.
# Das ist die schaerfste Ruecknahme, die dieses System kennt, und
# genau deshalb hat sie einen eigenen Knopf mit eigener Rueckfrage --