fix(spaces): show username instead of truncated DID in members list
GET /api/spaces/:slug/members now enriches entries missing displayName by looking up the username from EncryptID (/api/internal/user-email). Old member records (particularly owners created before displayName was passed to setMember) were showing as 'jAV6y4tg8UbKJEkN0npv...' in the space settings Members tab.
This commit is contained in:
parent
14ffee4101
commit
f388812927
|
|
@ -749,11 +749,27 @@ spaces.get("/:slug/members", async (c) => {
|
||||||
return c.json({ error: "Access denied" }, 403);
|
return c.json({ error: "Access denied" }, 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
const members = Object.values(data.members || {}).map((m) => ({
|
const rawMembers = Object.values(data.members || {}).map((m) => ({
|
||||||
...m,
|
...m,
|
||||||
isOwner: m.did === data.meta.ownerDID,
|
isOwner: m.did === data.meta.ownerDID,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// Enrich members missing displayName by looking up username from EncryptID.
|
||||||
|
// Historical records (esp. owners) didn't store it; without this the UI falls
|
||||||
|
// back to a truncated DID.
|
||||||
|
const members = await Promise.all(rawMembers.map(async (m) => {
|
||||||
|
if (m.displayName) return m;
|
||||||
|
try {
|
||||||
|
const r = await fetch(`${ENCRYPTID_URL}/api/internal/user-email/${encodeURIComponent(m.did)}`);
|
||||||
|
if (!r.ok) return m;
|
||||||
|
const info = await r.json() as { username?: string | null; displayName?: string | null };
|
||||||
|
const name = info.displayName || info.username;
|
||||||
|
return name ? { ...m, displayName: name } : m;
|
||||||
|
} catch {
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
return c.json({ members });
|
return c.json({ members });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue