fix(approvals): gate /approve by gateway scopes

This commit is contained in:
Armin Ronacher
2026-02-02 11:51:42 +01:00
committed by Peter Steinberger
parent 66d8117d44
commit efe2a464af
4 changed files with 41 additions and 1 deletions

View File

@@ -79,4 +79,23 @@ describe("/approve command", () => {
}),
);
});
it("rejects gateway clients without approvals scope", async () => {
const cfg = {
commands: { text: true },
} as OpenClawConfig;
const params = buildParams("/approve abc allow-once", cfg, {
Provider: "webchat",
Surface: "webchat",
GatewayClientScopes: ["operator.write"],
});
const mockCallGateway = vi.mocked(callGateway);
mockCallGateway.mockResolvedValueOnce({ ok: true });
const result = await handleCommands(params);
expect(result.shouldContinue).toBe(false);
expect(result.reply?.text).toContain("requires operator.approvals");
expect(mockCallGateway).not.toHaveBeenCalled();
});
});