Lizenzserver 2.8.14: die Ticketgrenze wandert nicht mit den Revisionen
This commit is contained in:
1 parent
98c2b2aa14
commit
34a4923304
3 files changed
+22
-4
No files matched your search
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "tesm-license"
|
||||
version = "2.8.13"
|
||||
version = "2.8.14"
|
||||
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
|
||||
@@ -315,7 +315,18 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_one_open_license_per_ticket_art
|
||||
"""
|
||||
|
||||
LICENSE_MIGRATIONS: tuple[Migration, ...] = (
|
||||
Migration(version=1, name="baseline", sql=V1, allow_integrity_error=True),
|
||||
Migration(
|
||||
version=1,
|
||||
name="baseline",
|
||||
sql=V1,
|
||||
allow_integrity_error=True,
|
||||
geaendert_weil=(
|
||||
"Der eindeutige Index ueber offene Lizenzen zaehlt seit 2.8.12 die Art mit "
|
||||
"(Testlizenz neben Volllizenz). Eine frische Installation soll ihn gleich "
|
||||
"richtig anlegen und nicht erst ueber tesm_license/5 umbauen; auf "
|
||||
"bestehenden Installationen erledigt das die Migration 5."
|
||||
),
|
||||
),
|
||||
Migration(version=2, name="revision-timestamp", sql=V2),
|
||||
Migration(version=3, name="funktionsgruppe-fuer-admins", fn=uebergang_funktionsgruppe),
|
||||
Migration(version=4, name="standardgruppen-aufraeumen", fn=uebergang_standardgruppen),
|
||||
|
||||
@@ -663,9 +663,16 @@ def ticket_grenze(conn: sqlite3.Connection, license_id: str) -> str | None:
|
||||
# Eine Testlizenz lebt nach ihren eigenen Regeln und nicht nach dem Ticket.
|
||||
if str(row["type"]) == "trial":
|
||||
return None
|
||||
document = json.loads(str(row["license_document"]))
|
||||
# Die Spalte, nicht das Dokument. ``resign_license`` setzt im Dokument bei
|
||||
# **jeder** Revision ein neues ``issued_at`` -- eine Grenze, die darauf
|
||||
# rechnet, wandert also mit jeder Neusignatur nach vorn. Wer oft genug neu
|
||||
# signiert, verlaengert damit den Anspruch, ohne das Ticket anzufassen:
|
||||
# genau die Luecke, die diese Funktion schliessen soll. Live gemessen --
|
||||
# Zeile 12.09. 17:45, Dokument nach zwei Revisionen 16.09. 20:20.
|
||||
#
|
||||
# Die Spalte ``issued_at`` bleibt bei der ersten Ausstellung stehen.
|
||||
return lic.iso(
|
||||
lic.parse_iso(str(document["issued_at"])) + timedelta(days=int(ticket["valid_days"]))
|
||||
lic.parse_iso(str(row["issued_at"])) + timedelta(days=int(ticket["valid_days"]))
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user