feat: expose autoAcceptPeering in admin settings and add rejectedPeerOrigins to ready payload

This commit is contained in:
Jannis Braun
2026-04-09 13:53:26 +02:00
parent 83771b863c
commit 5f700c1a51
2 changed files with 16 additions and 1 deletions
+6
View File
@@ -192,6 +192,7 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
federationRelayEnabled: row.federationRelayEnabled === 1,
federationRelayTtlDays: row.federationRelayTtlDays,
defaultAutoRotateIntervalDays: row.defaultAutoRotateIntervalDays,
autoAcceptPeering: row.autoAcceptPeering === 1,
};
return reply.code(200).send(response);
@@ -258,6 +259,10 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
updateData.defaultAutoRotateIntervalDays = interval;
}
if (body.autoAcceptPeering !== undefined) {
updateData.autoAcceptPeering = body.autoAcceptPeering ? 1 : 0;
}
db.update(schema.instanceSettings).set(updateData).where(eq(schema.instanceSettings.id, 1)).run();
const updatedRow = db.select().from(schema.instanceSettings).where(eq(schema.instanceSettings.id, 1)).get();
@@ -277,6 +282,7 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
federationRelayEnabled: updatedRow.federationRelayEnabled === 1,
federationRelayTtlDays: updatedRow.federationRelayTtlDays,
defaultAutoRotateIntervalDays: updatedRow.defaultAutoRotateIntervalDays,
autoAcceptPeering: updatedRow.autoAcceptPeering === 1,
};
return reply.code(200).send(response);
+10 -1
View File
@@ -935,6 +935,7 @@ function buildReadyPayload(userId: string): {
readStates: ReadState[];
activeCalls: ActiveCallInfo[];
userActivities: Record<string, Activity[]>;
rejectedPeerOrigins: string[];
} {
const db = getDb();
@@ -1463,7 +1464,15 @@ function buildReadyPayload(userId: string): {
}
}
return { user, spaces, dmChannels, folders, spaceLayout, layoutUpdatedAt, voiceStates, voiceUserStates, spaceVoiceStates, readStates, activeCalls, userActivities };
// Rejected peer origins for unreachable member indicators
const rejectedPeers = db
.select({ origin: schema.federationPeers.origin })
.from(schema.federationPeers)
.where(eq(schema.federationPeers.status, 'rejected'))
.all();
const rejectedPeerOrigins = rejectedPeers.map(p => p.origin);
return { user, spaces, dmChannels, folders, spaceLayout, layoutUpdatedAt, voiceStates, voiceUserStates, spaceVoiceStates, readStates, activeCalls, userActivities, rejectedPeerOrigins };
}
export async function registerWebSocket(app: FastifyInstance): Promise<void> {