mirror of https://github.com/openclaw/openclaw.git
fix: honor nextcloud default runtime account
This commit is contained in:
parent
26b7260bf4
commit
e063f67ac0
|
|
@ -63,10 +63,11 @@ function resolveNextcloudTalkSecret(
|
|||
cfg: CoreConfig,
|
||||
opts: { accountId?: string },
|
||||
): { secret: string; source: ResolvedNextcloudTalkAccount["secretSource"] } {
|
||||
const merged = mergeNextcloudTalkAccountConfig(cfg, opts.accountId ?? DEFAULT_ACCOUNT_ID);
|
||||
const resolvedAccountId = opts.accountId ?? resolveDefaultNextcloudTalkAccountId(cfg);
|
||||
const merged = mergeNextcloudTalkAccountConfig(cfg, resolvedAccountId);
|
||||
|
||||
const envSecret = process.env.NEXTCLOUD_TALK_BOT_SECRET?.trim();
|
||||
if (envSecret && (!opts.accountId || opts.accountId === DEFAULT_ACCOUNT_ID)) {
|
||||
if (envSecret && resolvedAccountId === DEFAULT_ACCOUNT_ID) {
|
||||
return { secret: envSecret, source: "env" };
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +84,7 @@ function resolveNextcloudTalkSecret(
|
|||
|
||||
const inlineSecret = normalizeResolvedSecretInputString({
|
||||
value: merged.botSecret,
|
||||
path: `channels.nextcloud-talk.accounts.${opts.accountId ?? DEFAULT_ACCOUNT_ID}.botSecret`,
|
||||
path: `channels.nextcloud-talk.accounts.${resolvedAccountId}.botSecret`,
|
||||
});
|
||||
if (inlineSecret) {
|
||||
return { secret: inlineSecret, source: "config" };
|
||||
|
|
@ -97,6 +98,7 @@ export function resolveNextcloudTalkAccount(params: {
|
|||
accountId?: string | null;
|
||||
}): ResolvedNextcloudTalkAccount {
|
||||
const baseEnabled = params.cfg.channels?.["nextcloud-talk"]?.enabled !== false;
|
||||
const resolvedAccountId = params.accountId ?? resolveDefaultNextcloudTalkAccountId(params.cfg);
|
||||
|
||||
const resolve = (accountId: string) => {
|
||||
const merged = mergeNextcloudTalkAccountConfig(params.cfg, accountId);
|
||||
|
|
@ -124,7 +126,7 @@ export function resolveNextcloudTalkAccount(params: {
|
|||
};
|
||||
|
||||
return resolveAccountWithDefaultFallback({
|
||||
accountId: params.accountId,
|
||||
accountId: resolvedAccountId,
|
||||
normalizeAccountId,
|
||||
resolvePrimary: resolve,
|
||||
hasCredential: (account) => account.secretSource !== "none",
|
||||
|
|
|
|||
|
|
@ -363,4 +363,28 @@ describe("resolveNextcloudTalkAccount", () => {
|
|||
expect(account.secretSource).toBe("none");
|
||||
fs.rmSync(dir, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
it("uses configured defaultAccount when accountId is omitted", () => {
|
||||
const account = resolveNextcloudTalkAccount({
|
||||
cfg: {
|
||||
channels: {
|
||||
"nextcloud-talk": {
|
||||
defaultAccount: "work",
|
||||
botSecret: "top-secret",
|
||||
accounts: {
|
||||
work: {
|
||||
baseUrl: "https://cloud.example.com",
|
||||
botSecret: "work-secret",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
} as CoreConfig,
|
||||
});
|
||||
|
||||
expect(account.accountId).toBe("work");
|
||||
expect(account.baseUrl).toBe("https://cloud.example.com");
|
||||
expect(account.secret).toBe("work-secret");
|
||||
expect(account.secretSource).toBe("config");
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue