mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-30 23:25:24 +00:00
fix: fleets, proxmox and automations not getting the host sudo password
This commit is contained in:
1 parent
6f442c5863
commit
5e31642379
8 files changed
+65
-5
No files matched your search
@@ -18,6 +18,7 @@
|
||||
"hosts:read",
|
||||
"hosts:write",
|
||||
"credentials:use",
|
||||
"credentials:read",
|
||||
"ssh:connect",
|
||||
"db:own",
|
||||
"network:serve",
|
||||
|
||||
@@ -275,7 +275,13 @@ async function discoverProxmoxGuestsForHost(
|
||||
timeoutMs: 35000,
|
||||
overrides: { tryKeyboard: false, readyTimeout: 30000 },
|
||||
});
|
||||
const hostWithSudo: PluginSshHostWithSudo = host;
|
||||
// connect() always hands back a redacted host; the sudo password comes
|
||||
// from resolveHost, which needs credentials:read.
|
||||
const full = await ctx.ssh.resolveHost(parsedHostId);
|
||||
const hostWithSudo: PluginSshHostWithSudo = {
|
||||
...host,
|
||||
sudoPassword: (full?.sudoPassword as string | undefined) ?? undefined,
|
||||
};
|
||||
const hostCredentialId = (hostWithSudo.credentialId as number | null) ?? null;
|
||||
|
||||
try {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
// Elevated commands read the host's sudo password, which core only hands to
|
||||
// a plugin holding credentials:read.
|
||||
describe("sudo password access", () => {
|
||||
it("declares credentials:read", () => {
|
||||
const manifest = JSON.parse(
|
||||
fs.readFileSync(
|
||||
path.resolve(import.meta.dirname, "../../manifest.json"),
|
||||
"utf8",
|
||||
),
|
||||
);
|
||||
expect(manifest.capabilities).toContain("credentials:read");
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user