]> git.proxmox.com Git - novnc-pve.git/commitdiff
suppress unauthorized error from status query for VM.Console only user
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 7 Oct 2022 08:44:58 +0000 (10:44 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 10 Oct 2022 08:43:02 +0000 (10:43 +0200)
We now query the guest status before starting the console to provide
a start button if it's not yet running, but that requires VM.Audit
privileges, so more than just VM.Console on the guest.

So, ignore a `403 Forbidden` response, as that just means we cannot
query the VM info to see if it's running, rather just continue
connecting.

See: https://forum.proxmox.com/threads/116176/
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [ T: reworked commit message ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
debian/patches/0018-show-start-button-on-not-running-vm-ct.patch

index 162acc4b2624322015d780ae3fd7617fcfb327e3..4e1b99d24523b30aa4bf828562f3ff0a0abb0f51 100644 (file)
@@ -13,15 +13,24 @@ colors were adapted
 
 Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 ---
- app/pve.js         | 38 ++++++++++++++++++++++++++----
+ app/pve.js         | 45 +++++++++++++++++++++++++++++++----
  app/styles/pve.css | 58 ++++++++++++++++++++++++++++++++++++++++++++++
  vnc.html           |  9 +++++++
- 3 files changed, 101 insertions(+), 4 deletions(-)
+ 3 files changed, 107 insertions(+), 5 deletions(-)
 
 diff --git a/app/pve.js b/app/pve.js
-index 583a406..3eeaa47 100644
+index 583a406..287615f 100644
 --- a/app/pve.js
 +++ b/app/pve.js
+@@ -117,7 +117,7 @@ PVEUI.prototype = {
+           if (errmsg !== undefined) {
+               if (reqOpts.failure) {
+-                  reqOpts.failure.call(scope, errmsg);
++                  reqOpts.failure.call(scope, errmsg, xhr.status);
+               }
+           } else {
+               if (reqOpts.success) {
 @@ -231,7 +231,7 @@ PVEUI.prototype = {
  
      },
@@ -63,7 +72,7 @@ index 583a406..3eeaa47 100644
        me.API2Request({
            url: me.url,
            method: 'POST',
-@@ -391,6 +396,31 @@ PVEUI.prototype = {
+@@ -391,6 +396,36 @@ PVEUI.prototype = {
        });
      },
  
@@ -83,8 +92,13 @@ index 583a406..3eeaa47 100644
 +                          .classList.add("noVNC_open");
 +                  }
 +              },
-+              failure: function(msg) {
-+                  me.UI.showStatus(msg, 'error');
++              failure: function(msg, code) {
++                  if (code === 403) {
++                      // connect anyway for users with VM.Console but without VM.Audit
++                      me.initConnection(callback);
++                  } else {
++                      me.UI.showStatus(msg, 'error');
++                  }
 +              }
 +          });
 +      } else {