Aktivierung: bei Medium mit Ziel-OE deren Workspace in der Template-Antwort
Die Installer-Uebersicht (25_installation_confirm.sh) zeigte den Profil-Workspace, wirksam ist aber der der Ziel-OE (Schritt F). Neue Hilfsfunktion oe_kette_workspace(); gleiche Distro-Regel wie geraete_basis_herkunft(). Der Installer liest nur den Namen, keine Installer-Aenderung noetig. GUI-Runde 10/2026 Punkt 8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
465910f700
commit
61aa108666
1 file changed
+43
@@ -1439,6 +1439,34 @@ def geraete_basis_herkunft(cur, device_id: str):
|
||||
{"art": "installation"},
|
||||
)
|
||||
|
||||
def oe_kette_workspace(cur, oe_id: str):
|
||||
"""Nächstgelegener Workspace in der OE-Kette (eigene OE, dann Eltern) als
|
||||
(workspace_id, name, backend_id) oder None - dieselbe Reihenfolge wie
|
||||
geraete_basis_herkunft()."""
|
||||
|
||||
cur.execute("SELECT organization_id FROM organisationseinheiten WHERE id = %s", (oe_id,))
|
||||
row = cur.fetchone()
|
||||
if row is None:
|
||||
return None
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT oe.id, oe.parent_id, w.id, w.name, w.backend_id
|
||||
FROM organisationseinheiten oe
|
||||
LEFT JOIN workspaces w ON w.id = oe.workspace_id
|
||||
WHERE oe.organization_id = %s
|
||||
""",
|
||||
(row[0],),
|
||||
)
|
||||
oes = {r[0]: r[1:] for r in cur.fetchall()}
|
||||
aktuell = UUID(str(oe_id))
|
||||
while aktuell is not None and aktuell in oes:
|
||||
parent_id, workspace_id, name, backend_id = oes[aktuell]
|
||||
if workspace_id is not None:
|
||||
return str(workspace_id), name, str(backend_id) if backend_id else None
|
||||
aktuell = parent_id
|
||||
return None
|
||||
|
||||
|
||||
def fetch_auftragskatalog_state(device_id: str):
|
||||
"""
|
||||
Voller Soll-Zustand (present/absent) aller katalogfähigen Merkmale für
|
||||
@@ -5177,6 +5205,21 @@ def activate(payload: ActivationRequest, request: Request):
|
||||
for template in fetch_templates(organization_id)
|
||||
if template["id"] == enrollment_session["bereitstellungsvorlage_id"]
|
||||
]
|
||||
# GUI-Runde 09.10.2026 (Punkt 8): Bei einem Medium mit Ziel-OE gilt
|
||||
# deren Workspace (Schritt F) - die Installer-Übersicht ("Workspace:
|
||||
# ...", 25_installation_confirm.sh) zeigte bisher den des Profils.
|
||||
# Gleiche Distro-Regel wie geraete_basis_herkunft(): passt die Distro
|
||||
# nicht, bleibt es beim Workspace aus der Installation.
|
||||
if enrollment_session.get("ziel_oe_id") and templates:
|
||||
with get_database_connection() as conn:
|
||||
with conn.cursor() as cur:
|
||||
oe_ws = oe_kette_workspace(cur, enrollment_session["ziel_oe_id"])
|
||||
if oe_ws and (oe_ws[2] is None or oe_ws[2] == templates[0]["backend"]["id"]):
|
||||
templates[0] = {
|
||||
**templates[0],
|
||||
"workspace": {"id": oe_ws[0], "name": oe_ws[1]},
|
||||
"workspace_herkunft": "ziel_oe",
|
||||
}
|
||||
else:
|
||||
templates = fetch_templates(organization_id)
|
||||
|
||||
|
||||
Reference in new issue
Block a user