Lock down non-admin access (#53)

This commit is contained in:
Chris Estreich 2025-05-30 10:15:19 -07:00 committed by GitHub
parent dd4bb88396
commit a5a3dba01d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 33 additions and 3 deletions

View file

@ -1,19 +1,29 @@
import { auth } from '@clerk/nextjs/server';
import { redirect } from 'next/navigation';
import { auth } from '@clerk/nextjs/server';
import { NavbarHeader, NavbarMenu, Section } from '@/components/layout';
import {
NavbarHeader,
NavbarMenu,
Section,
Connected,
} from '@/components/layout';
export default async function AuthenticatedLayout({
children,
}: {
children: React.ReactNode;
}) {
const { orgId } = await auth();
const { orgId, orgRole } = await auth();
if (!orgId) {
redirect('/select-org');
}
// For now, a non-admin just get a "You're connected" message.
if (orgRole !== 'org:admin') {
return <Connected />;
}
return (
<>
<NavbarHeader className="h-[72px]" />

View file

@ -0,0 +1,19 @@
import { UserButton } from '@clerk/nextjs';
import { Logo } from './Logo';
import { ThemeSwitcher } from './ThemeSwitcher';
export const Connected = () => (
<div className="flex min-h-screen items-center justify-center">
<div className="flex flex-col gap-8">You are connected to Roo Code.</div>
<div className="absolute top-8 left-8">
<Logo />
</div>
<div className="absolute top-8 right-8">
<div className="flex items-center gap-2">
<ThemeSwitcher />
<UserButton />
</div>
</div>
</div>
);

View file

@ -4,6 +4,7 @@ export { ThemeSwitcher } from './ThemeSwitcher';
export { Logo, HoppingLogo } from './Logo';
export { NavbarHeader } from './NavbarHeader';
export { NavbarMenu } from './NavbarMenu';
export { Connected } from './Connected';
export { ThemeProvider } from './ThemeProvider';
export { AuthProvider } from './AuthProvider';