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, federationRelayEnabled: row.federationRelayEnabled === 1,
federationRelayTtlDays: row.federationRelayTtlDays, federationRelayTtlDays: row.federationRelayTtlDays,
defaultAutoRotateIntervalDays: row.defaultAutoRotateIntervalDays, defaultAutoRotateIntervalDays: row.defaultAutoRotateIntervalDays,
autoAcceptPeering: row.autoAcceptPeering === 1,
}; };
return reply.code(200).send(response); return reply.code(200).send(response);
@@ -258,6 +259,10 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
updateData.defaultAutoRotateIntervalDays = interval; 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(); 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(); 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, federationRelayEnabled: updatedRow.federationRelayEnabled === 1,
federationRelayTtlDays: updatedRow.federationRelayTtlDays, federationRelayTtlDays: updatedRow.federationRelayTtlDays,
defaultAutoRotateIntervalDays: updatedRow.defaultAutoRotateIntervalDays, defaultAutoRotateIntervalDays: updatedRow.defaultAutoRotateIntervalDays,
autoAcceptPeering: updatedRow.autoAcceptPeering === 1,
}; };
return reply.code(200).send(response); return reply.code(200).send(response);
+10 -1
View File
@@ -935,6 +935,7 @@ function buildReadyPayload(userId: string): {
readStates: ReadState[]; readStates: ReadState[];
activeCalls: ActiveCallInfo[]; activeCalls: ActiveCallInfo[];
userActivities: Record<string, Activity[]>; userActivities: Record<string, Activity[]>;
rejectedPeerOrigins: string[];
} { } {
const db = getDb(); 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> { export async function registerWebSocket(app: FastifyInstance): Promise<void> {