From 420003f2d5ad8ec37e09037ce896d702a20899dd Mon Sep 17 00:00:00 2001 From: Nurfog Date: Mon, 2 Mar 2026 11:59:38 -0300 Subject: [PATCH] feat: Allow super-admins to retrieve courses across organizations and update navigation link styles to `text-sm` and `text-slate-600`. --- services/cms-service/src/handlers.rs | 14 ++++++++++++-- web/experience/src/app/globals.css | 2 +- web/experience/src/components/AppHeader.tsx | 6 +++--- web/studio/src/app/globals.css | 2 +- web/studio/src/components/CourseEditorLayout.tsx | 6 +++--- web/studio/src/components/Navbar.tsx | 12 ++++++------ 6 files changed, 26 insertions(+), 16 deletions(-) diff --git a/services/cms-service/src/handlers.rs b/services/cms-service/src/handlers.rs index e0c6353..36bc0de 100644 --- a/services/cms-service/src/handlers.rs +++ b/services/cms-service/src/handlers.rs @@ -2415,17 +2415,27 @@ pub struct CourseWithOutline { pub async fn get_course_outline( Org(org_ctx): Org, + claims: common::auth::Claims, State(pool): State, Path(id): Path, ) -> Result, StatusCode> { + let is_super_admin = claims.role == "admin" + && claims.org == Uuid::parse_str("00000000-0000-0000-0000-000000000001").unwrap(); + // 1. Fetch Course - let course = + let course = if is_super_admin { + sqlx::query_as::<_, Course>("SELECT * FROM courses WHERE id = $1") + .bind(id) + .fetch_one(&pool) + .await + } else { sqlx::query_as::<_, Course>("SELECT * FROM courses WHERE id = $1 AND organization_id = $2") .bind(id) .bind(org_ctx.id) .fetch_one(&pool) .await - .map_err(|_| StatusCode::NOT_FOUND)?; + } + .map_err(|_| StatusCode::NOT_FOUND)?; // 2. Fetch Modules let modules = diff --git a/web/experience/src/app/globals.css b/web/experience/src/app/globals.css index 6e63351..6a7e437 100644 --- a/web/experience/src/app/globals.css +++ b/web/experience/src/app/globals.css @@ -56,7 +56,7 @@ body { } .nav-link-standard { - @apply text-xs font-bold uppercase tracking-widest transition-colors flex items-center gap-2; + @apply text-sm font-bold uppercase tracking-wider transition-colors flex items-center gap-2; } .glass-card:hover { diff --git a/web/experience/src/components/AppHeader.tsx b/web/experience/src/components/AppHeader.tsx index f5ca217..288b8c0 100644 --- a/web/experience/src/components/AppHeader.tsx +++ b/web/experience/src/components/AppHeader.tsx @@ -46,13 +46,13 @@ export default function AppHeader() {