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() {