fix: locked down navbar options for admin pages and added rls policies

This commit is contained in:
Damien Ostler 2024-06-02 17:50:08 -04:00
parent 02872252b5
commit 0127d00021
2 changed files with 35 additions and 19 deletions

View File

@ -17,13 +17,13 @@ export async function POST(request: Request) {
} }
else{ else{
// Rest of the code... // Rest of the code...
let { data: galleries, error } = await supabase let { data: galleries, error } = await supabase
.from('galleries') .from('galleries')
.select('*') .select('*')
.contains('tags', tags) // Fix: Use contains instead of overlaps .contains('tags', tags) // Fix: Use contains instead of overlaps
.ilike('name', `%${search}%`) .ilike('name', `%${search}%`)
return NextResponse.json(galleries); return NextResponse.json(galleries);
} }
} }

View File

@ -36,6 +36,16 @@ console.log(currentPage)
} }
const url = getGravatarUrl(); const url = getGravatarUrl();
const admins = await supabase.from('admins').select('user_id');
let isAdmin = false;
if(!admins.error) {
for (const admin of admins.data) {
if (admin.user_id == user?.id) {
isAdmin = true;
break;
}
}
}
return ( return (
<div className="flex justify-center items-center pt-2 "> <div className="flex justify-center items-center pt-2 ">
@ -44,18 +54,24 @@ console.log(currentPage)
<div className="flex items-center gap-2 z-10"> <div className="flex items-center gap-2 z-10">
{/* This is admin stuff */} {/* This is admin stuff */}
<Link
href="/gallery/admin" {(isAdmin) && (
className={`py-2 px-3 w-32 text-center flex rounded-md lg:block hidden no-underline ${currentPage!="gallery" ? 'bg-secondary hover:bg-secondary-light' : 'bg-secondary hover:bg-secondary-light'}`} <>
>
<span className="hidden lg:block">Gallery Admin</span> <Link
</Link> href="/gallery/admin"
<Link className={`py-2 px-3 w-32 text-center flex rounded-md lg:block hidden no-underline ${currentPage!="gallery" ? 'bg-secondary hover:bg-secondary-light' : 'bg-secondary hover:bg-secondary-light'}`}
href="/admin/" >
className={`py-2 px-3 w-38 text-center flex rounded-md lg:block hidden no-underline ${currentPage!="gallery" ? 'bg-secondary hover:bg-secondary-light' : 'bg-secondary hover:bg-secondary-light'}`} <span className="hidden lg:block">Gallery Admin</span>
> </Link>
<span className="hidden lg:block">System Settings</span> <Link
</Link> href="/admin/"
className={`py-2 px-3 w-38 text-center flex rounded-md lg:block hidden no-underline ${currentPage!="gallery" ? 'bg-secondary hover:bg-secondary-light' : 'bg-secondary hover:bg-secondary-light'}`}
>
<span className="hidden lg:block">System Settings</span>
</Link>
</>
)}
<Link <Link
href="/gallery" href="/gallery"