diff --git a/src/app/(authenticated)/audit-logs/page.tsx b/src/app/(authenticated)/audit-logs/page.tsx
index 80e50388ec..07488bbc2b 100644
--- a/src/app/(authenticated)/audit-logs/page.tsx
+++ b/src/app/(authenticated)/audit-logs/page.tsx
@@ -1,5 +1,14 @@
+import { redirect } from 'next/navigation';
+import { auth } from '@clerk/nextjs/server';
import { AuditLogs } from './AuditLogs';
-export default function Page() {
+export default async function Page() {
+ const { orgRole } = await auth();
+
+ // Only admins can access audit logs
+ if (orgRole !== 'org:admin') {
+ redirect('/usage');
+ }
+
return ;
}
diff --git a/src/app/(authenticated)/layout.tsx b/src/app/(authenticated)/layout.tsx
index 866ff54c1c..ac9062ce43 100644
--- a/src/app/(authenticated)/layout.tsx
+++ b/src/app/(authenticated)/layout.tsx
@@ -6,7 +6,6 @@ import {
setSentryOrganizationContext,
} from '@/lib/server/sentry-context';
import { NavbarHeader, NavbarMenu, Section } from '@/components/layout';
-import { Usage } from './usage/Usage';
export default async function AuthenticatedLayout({
children,
@@ -32,25 +31,13 @@ export default async function AuthenticatedLayout({
}
}
- // Members get access to usage page only, filtered to their own data
- if (orgRole === 'org:member' || (orgRole && orgRole !== 'org:admin')) {
- return (
- <>
-
-
-
- >
- );
- }
-
return (
<>
-
+
diff --git a/src/app/(authenticated)/providers/page.tsx b/src/app/(authenticated)/providers/page.tsx
index 0a1976ed3e..42e8550dfe 100644
--- a/src/app/(authenticated)/providers/page.tsx
+++ b/src/app/(authenticated)/providers/page.tsx
@@ -1,5 +1,14 @@
+import { redirect } from 'next/navigation';
+import { auth } from '@clerk/nextjs/server';
import { ProviderSettings } from './ProviderSettings';
-export default function Page() {
+export default async function Page() {
+ const { orgRole } = await auth();
+
+ // Only admins can access provider settings
+ if (orgRole !== 'org:admin') {
+ redirect('/usage');
+ }
+
return ;
}
diff --git a/src/app/(authenticated)/settings/page.tsx b/src/app/(authenticated)/settings/page.tsx
index 976a68be6e..a8b90b05b7 100644
--- a/src/app/(authenticated)/settings/page.tsx
+++ b/src/app/(authenticated)/settings/page.tsx
@@ -1,6 +1,15 @@
+import { redirect } from 'next/navigation';
+import { auth } from '@clerk/nextjs/server';
import { SettingsPage } from './SettingsPage';
-export default function Settings() {
+export default async function Settings() {
+ const { orgRole } = await auth();
+
+ // Only admins can access settings
+ if (orgRole !== 'org:admin') {
+ redirect('/usage');
+ }
+
return ;
}
diff --git a/src/app/(authenticated)/share/[token]/page.tsx b/src/app/(authenticated)/share/[token]/page.tsx
index a36f9c49c5..1dd200f638 100644
--- a/src/app/(authenticated)/share/[token]/page.tsx
+++ b/src/app/(authenticated)/share/[token]/page.tsx
@@ -44,8 +44,6 @@ export default async function SharedTaskPage({ params }: SharedTaskPageProps) {
);
} catch (error) {
- console.error('Error loading shared task:', error);
-
// Check if it's an access denied error
if (error instanceof Error && error.message.includes('Access denied')) {
return (
diff --git a/src/app/(authenticated)/usage/page.tsx b/src/app/(authenticated)/usage/page.tsx
index 0c4c472467..de015f1bb2 100644
--- a/src/app/(authenticated)/usage/page.tsx
+++ b/src/app/(authenticated)/usage/page.tsx
@@ -2,7 +2,12 @@ import { auth } from '@clerk/nextjs/server';
import { Usage } from './Usage';
export default async function Page() {
- const { userId } = await auth();
+ const { userId, orgRole } = await auth();
- return ;
+ return (
+
+ );
}