From 940913cf896e08f190deae3b8bb3c970188449c7 Mon Sep 17 00:00:00 2001 From: "Michael N. Lipp" Date: Tue, 4 Mar 2025 23:39:22 +0100 Subject: [PATCH] Use UserLoggedIn condition for access control. --- dev-example/test-vm.tpl.yaml | 3 +- .../vmaccess/browser/VmAccess-functions.ts | 29 +++++++++++-------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/dev-example/test-vm.tpl.yaml b/dev-example/test-vm.tpl.yaml index 260341e..a6d8825 100644 --- a/dev-example/test-vm.tpl.yaml +++ b/dev-example/test-vm.tpl.yaml @@ -8,12 +8,11 @@ metadata: spec: image: -# repository: docker-registry.lan.mnl.de -# path: vmoperator/org.jdrupes.vmoperator.runner.qemu-arch # pullPolicy: Always # repository: ghcr.io # path: mnlipp/org.jdrupes.vmoperator.runner.qemu-alpine # version: "3.0.0" +# source: docker-registry.lan.mnl.de/vm-operator/org.jdrupes.vmoperator.runner.qemu-arch:feature-auto-login source: registry.mnl.de/org/jdrupes/vm-operator/org.jdrupes.vmoperator.runner.qemu-arch:feature-auto-login pullPolicy: Always diff --git a/org.jdrupes.vmoperator.vmaccess/src/org/jdrupes/vmoperator/vmaccess/browser/VmAccess-functions.ts b/org.jdrupes.vmoperator.vmaccess/src/org/jdrupes/vmoperator/vmaccess/browser/VmAccess-functions.ts index f0ef3c8..21fadfd 100644 --- a/org.jdrupes.vmoperator.vmaccess/src/org/jdrupes/vmoperator/vmaccess/browser/VmAccess-functions.ts +++ b/org.jdrupes.vmoperator.vmaccess/src/org/jdrupes/vmoperator/vmaccess/browser/VmAccess-functions.ts @@ -73,8 +73,9 @@ window.orgJDrupesVmOperatorVmAccess.initPreview = (previewDom: HTMLElement, const configured = computed(() => previewApi.vmDefinition.spec); const busy = computed(() => previewApi.vmDefinition.spec && (previewApi.vmDefinition.spec.vm.state === 'Running' - && (previewApi.poolName - ? !previewApi.vmDefinition.vmopAgent + && ((previewApi.poolName + && previewApi.vmDefinition.userLoginRequested) + ? !previewApi.vmDefinition.userLoggedIn : !previewApi.vmDefinition.running) || previewApi.vmDefinition.spec.vm.state === 'Stopped' && previewApi.vmDefinition.running)); @@ -87,7 +88,8 @@ window.orgJDrupesVmOperatorVmAccess.initPreview = (previewDom: HTMLElement, previewApi.vmDefinition.spec.vm.state !== 'Stopped' && previewApi.vmDefinition.running); const running = computed(() => previewApi.vmDefinition.running); - const vmopAgent = computed(() => previewApi.vmDefinition.vmopAgent); + const userLoginRequested = computed(() => previewApi.vmDefinition.userLoginRequested); + const userLoggedIn = computed(() => previewApi.vmDefinition.userLoggedIn); const inUse = computed(() => previewApi.vmDefinition.usedBy != ''); const permissions = computed(() => previewApi.permissions); const osicon = computed(() => { @@ -123,8 +125,8 @@ window.orgJDrupesVmOperatorVmAccess.initPreview = (previewDom: HTMLElement, }; return { localize, resourceBase, vmAction, poolName, vmName, - configured, busy, startable, stoppable, running, vmopAgent, - inUse, permissions, osicon }; + configured, busy, startable, stoppable, running, userLoggedIn, + userLoginRequested, inUse, permissions, osicon }; }, template: ` @@ -132,9 +134,10 @@ window.orgJDrupesVmOperatorVmAccess.initPreview = (previewDom: HTMLElement,
{ if (condition.type === "Running") { vmDefinition.running = condition.status === "True"; vmDefinition.runningConditionSince = new Date(condition.lastTransitionTime); - } else if (condition.type === "VmopAgentConnected") { - vmDefinition.vmopAgent = condition.status === "True"; - vmDefinition.vmopAgentConditionSince - = new Date(condition.lastTransitionTime); + } else if (condition.type === "UserLoggedIn") { + vmDefinition.userLoggedIn = condition.status === "True"; + vmDefinition.userLoginRequested = condition.reason !== "NotRequested"; } }) } else {