fix: resolve infinite recursion in admin_users RLS policy

The admin_users policy was checking if user is admin by querying
the same table, causing infinite recursion. Changed to allow users
to view their own admin record directly using auth.uid() = user_id.

This fixes the error: 'infinite recursion detected in policy for
relation admin_users'
This commit is contained in:
2025-12-18 14:11:22 +01:00
parent 7d307ac253
commit e960d1bace
3 changed files with 59 additions and 5 deletions

View File

@@ -283,9 +283,9 @@ CREATE POLICY "Admins can view all credits" ON user_credits FOR SELECT USING (
EXISTS (SELECT 1 FROM admin_users WHERE user_id = auth.uid())
);
-- Policies for admin_users (only admins can view)
CREATE POLICY "Admins can view admin users" ON admin_users FOR SELECT USING (
EXISTS (SELECT 1 FROM admin_users WHERE user_id = auth.uid())
-- Policies for admin_users (users can see their own admin record)
CREATE POLICY "Users can view their own admin record" ON admin_users FOR SELECT USING (
auth.uid() = user_id
);
-- Note: To add robin as admin, run this after getting the user_id: