From fcdc1b8e8e1ec1ba08e3298e2fdefdb04231800c Mon Sep 17 00:00:00 2001 From: riyadhafraa <49757212-riyadhafraa@users.noreply.replit.com> Date: Mon, 4 May 2026 06:40:35 +0000 Subject: [PATCH] Task #352: Make logo upload always visible for admin users MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, the logo upload field in Font Settings was hidden behind two conditions: canEditGlobal AND scope === "global". Admin users had to first switch the scope dropdown to "Global" before the logo upload appeared, making it very hard to discover. Changes: - Frontend (executive-meetings.tsx): Removed `scope === "global"` condition from logo upload rendering — now shows whenever `canEditGlobal` is true (admin/executive_office_manager). - Frontend: Save function now always sends `logoObjectPath` when `canEditGlobal` is true, regardless of selected scope. - Backend (executive-meetings.ts): When an admin saves with user scope and includes logoObjectPath, the logo is written to the global row (upsert) in the same transaction. This preserves the global-only semantics while allowing admins to update the logo from any scope. - Removed the 400 rejection for logoObjectPath on user-scope saves. - Authorization preserved: only EM_ADMIN_ROLES can trigger logo writes. Tested: - API: PATCH with scope=user + logoObjectPath correctly updates global row - E2E: Logo upload field visible for admin in user scope (confirmed) - Pre-existing test failures unchanged (PDF font assertion, notification tests) --- .../src/routes/executive-meetings.ts | 54 +++++++++++++----- artifacts/tx-os/public/opengraph.jpg | Bin 25965 -> 25958 bytes .../tx-os/src/pages/executive-meetings.tsx | 5 +- 3 files changed, 43 insertions(+), 16 deletions(-) diff --git a/artifacts/api-server/src/routes/executive-meetings.ts b/artifacts/api-server/src/routes/executive-meetings.ts index ee4a81b9..0189005e 100644 --- a/artifacts/api-server/src/routes/executive-meetings.ts +++ b/artifacts/api-server/src/routes/executive-meetings.ts @@ -2889,15 +2889,14 @@ const upsertFontSettingsHandler = async ( } } const targetUserId = data.scope === "global" ? null : userId; - // Reject user-scope logo writes loudly; null/undefined are fine. - if (data.scope === "user" && data.logoObjectPath != null) { - res.status(400).json({ - error: "logoObjectPath is only allowed on the global font-settings row", - code: "logo_user_scope_forbidden", - }); - return; - } - const logoForWrite = data.scope === "global" ? data.logoObjectPath : undefined; + const userRoleNames = await getRoleNamesForUser(userId); + const isAdmin = EM_ADMIN_ROLES.some((r) => userRoleNames.has(r)); + const logoSentByAdmin = + isAdmin && data.logoObjectPath !== undefined; + const logoForFontRow = + data.scope === "global" && logoSentByAdmin + ? data.logoObjectPath + : undefined; const result = await db.transaction(async (tx) => { const [existing] = await tx .select() @@ -2919,9 +2918,8 @@ const upsertFontSettingsHandler = async ( alignment: data.alignment, fontColor: data.fontColor, }; - // Distinguish null (clear) from undefined (skip). - if (logoForWrite !== undefined) { - updateSet.logoObjectPath = logoForWrite; + if (logoForFontRow !== undefined) { + updateSet.logoObjectPath = logoForFontRow; } const [updated] = await tx .update(executiveMeetingFontSettingsTable) @@ -2938,7 +2936,7 @@ const upsertFontSettingsHandler = async ( fontWeight: data.fontWeight, alignment: data.alignment, fontColor: data.fontColor, - logoObjectPath: logoForWrite ?? null, + logoObjectPath: logoForFontRow ?? null, }; const [inserted] = await tx .insert(executiveMeetingFontSettingsTable) @@ -2946,6 +2944,36 @@ const upsertFontSettingsHandler = async ( .returning(); row = inserted; } + if (logoSentByAdmin && data.scope !== "global") { + const [globalRow] = await tx + .select() + .from(executiveMeetingFontSettingsTable) + .where( + and( + eq(executiveMeetingFontSettingsTable.scope, "global"), + isNull(executiveMeetingFontSettingsTable.userId), + ), + ); + if (globalRow) { + await tx + .update(executiveMeetingFontSettingsTable) + .set({ logoObjectPath: data.logoObjectPath }) + .where(eq(executiveMeetingFontSettingsTable.id, globalRow.id)); + } else { + await tx + .insert(executiveMeetingFontSettingsTable) + .values({ + scope: "global", + userId: null, + fontFamily: data.fontFamily, + fontSize: data.fontSize, + fontWeight: data.fontWeight, + alignment: data.alignment, + fontColor: data.fontColor, + logoObjectPath: data.logoObjectPath ?? null, + }); + } + } await logAudit(tx, { action: existing ? "update" : "create", entityType: "font_settings", diff --git a/artifacts/tx-os/public/opengraph.jpg b/artifacts/tx-os/public/opengraph.jpg index d08d63410bdfa2d7c52b14f16b647404d05a1345..f45afc6f8a27de76ee3e5ccdbbaca9761c0f4784 100644 GIT binary patch literal 25958 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 z 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 literal 25965 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%0Aml7J_Ut4s{;tJgIj^wwyTAchZAyVDNIpHIE$i9 z2|J4IJf*9**8PQd>fsCN(1Er}!w$}8u*~Yla7tt}k(o2|4iDpy)0^Nvw}uy57JDSB zO0?l9K682*3S#!W%|Y2lT}`O)_0A^BkAs$7B2vgh2#v*V?=YpBmUG$% zObNF2FOQQaaxX3L@OoSuO~qeYK=F#>M^o1m-^d?N9BF{3mEBmXHMlx}OrKvUQ2T=` z6%Vc&y0vFfn!8nj@6v)z03B(un_G=VoWy4dOXfXI)cYWd;I^GY9^8r!cFm^h@_Dd*O;JUKmnL zW4GftiL@isV1)d5R)~G}@H>s+>(-4h1r);EqK!bu8xkmQ!WFcaRGr&jcp{uq$Pgxi3C6xc`U z?#4{FTTF9V+eGofovr)i)6Tc1Yv;SKRj(ctUh&=z%g>yf&7+z*_Yy@81OvaEVD6mM zq*_U}4B!Q3p9(RzVQKavQl94T8CGw#Z#OlM|GJ#3C|3q}m{hvWKs~gj&f`yGkKz<8vnK?TVfUFY~5{~6t zrMcsjki?5tsgOMuTs;pIQn7OsCzUJcBRtWDAGqV7ksjp72u;RmSKEh6@m(!CJsWU6 zUOiwqLYw5YU$g(J%?LAq&9Yg;X{Sivc*UWZFX%r=V*$dL%~Tp|pHgdK%Su;vTTX`d zx!X*p8J$b9#IquSKhWJ!RAnJ{p$FC{i(3+$B)6WuoEo{WJ+xG>-f`z=&SgGtElM9hxcE}KAirXxx!DH@$~yA#IJY#W-#Z+&OKLNZ+%|s_4?~? zL|G#lt52sL$a+St>vDduT6&|jW&NQK{PUt3ntuIa*OI8|ly&EW!y1?kzKf5cER^2? z_vD364Di6oHf8%6J?3nj6~uph*l zl^P2G8O5EBn!U0EOEqzk68opiSe%~@Xj8NQ+V8;_Lx)+m^?Ta~47vZzZChw>nq}hB zwxHi*CruV*`<$b^W}3Q*qwMiy=-J8`HaO|8N{E77=_JkFeC(*RMa<`M5p57nG9W605;F9t>Ilbkr5j2K zwul}35rmt)FHsLU$!>>Q-n2YJIbb@ER$qmAgw3+su%Lg3$BQ~VHq~we=8?H8?Kwx) zn&r|)iUGGUr2CeA9n=y3U79m_=mF4qEd=jBJ_*6^FGFld-{?t-0bsl#ux|Q P>@`Ut)lkG={&w%*|FlH_ diff --git a/artifacts/tx-os/src/pages/executive-meetings.tsx b/artifacts/tx-os/src/pages/executive-meetings.tsx index 485d722d..3f5f2cd4 100644 --- a/artifacts/tx-os/src/pages/executive-meetings.tsx +++ b/artifacts/tx-os/src/pages/executive-meetings.tsx @@ -7384,9 +7384,8 @@ function FontSettingsSection({ async function save() { setSaving(true); try { - // Omit logoObjectPath on user scope; send it (incl. null) on global. const body: Record = { scope, ...prefs }; - if (scope === "global") { + if (canEditGlobal) { body.logoObjectPath = logoPath; } await apiJson(`/api/executive-meetings/font-settings`, { @@ -7545,7 +7544,7 @@ function FontSettingsSection({ /> - {canEditGlobal && scope === "global" && ( + {canEditGlobal && (
{logoPath && (