fix: resolve RLS infinite recursion in tastings and sessions

This commit is contained in:
2025-12-18 11:24:04 +01:00
parent e6974cd060
commit 5923dd0474
4 changed files with 24 additions and 18 deletions

View File

@@ -89,9 +89,9 @@ export default function Home() {
});
setBottles(processedBottles);
} catch (err) {
} catch (err: any) {
console.error('Detailed fetch error:', err);
setFetchError('Die Sammlung konnte nicht geladen werden. Bitte versuche es später erneut.');
setFetchError(err.message || JSON.stringify(err));
} finally {
setIsLoading(false);
}
@@ -153,12 +153,12 @@ export default function Home() {
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-amber-600"></div>
</div>
) : fetchError ? (
<div className="p-8 bg-red-50 dark:bg-red-900/10 border border-red-200 dark:border-red-900/30 rounded-3xl text-center">
<p className="text-red-600 dark:text-red-400 font-bold mb-2">Hoppla!</p>
<p className="text-red-500/80 text-sm italic">{fetchError}</p>
<div className="p-8 bg-zinc-100 dark:bg-zinc-900/50 border border-zinc-200 dark:border-zinc-800 rounded-3xl text-center">
<p className="text-zinc-800 dark:text-zinc-200 font-bold mb-2">Sammlung konnte nicht geladen werden</p>
<p className="text-zinc-500 text-sm italic mb-4">Möglicherweise müssen die Datenbank-Regeln aktualisiert werden.</p>
<button
onClick={fetchCollection}
className="mt-4 px-6 py-2 bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900 rounded-xl text-xs font-bold uppercase tracking-widest"
className="px-6 py-2 bg-amber-600 hover:bg-amber-700 text-white rounded-xl text-xs font-bold uppercase tracking-widest transition-all"
>
Erneut versuchen
</button>

View File

@@ -99,9 +99,16 @@ export default function SessionDetailPage() {
const handleAddParticipant = async (buddyId: string) => {
if (participants.some(p => p.buddy_id === buddyId)) return;
const { data: { user } } = await supabase.auth.getUser();
if (!user) return;
const { error } = await supabase
.from('session_participants')
.insert([{ session_id: id, buddy_id: buddyId }]);
.insert([{
session_id: id,
buddy_id: buddyId,
user_id: user.id
}]);
if (!error) {
fetchSessionData();