mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 10:11:13 -05:00
Fix: Correct database function type mismatch
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
-- Fix type mismatch in get_users_with_emails function
|
||||
CREATE OR REPLACE FUNCTION public.get_users_with_emails()
|
||||
RETURNS TABLE (
|
||||
id uuid,
|
||||
user_id uuid,
|
||||
username text,
|
||||
email text,
|
||||
display_name text,
|
||||
avatar_url text,
|
||||
banned boolean,
|
||||
created_at timestamptz
|
||||
)
|
||||
LANGUAGE plpgsql
|
||||
SECURITY DEFINER
|
||||
SET search_path TO 'public', 'auth'
|
||||
AS $$
|
||||
BEGIN
|
||||
-- Check if caller is superuser or admin
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM public.user_roles
|
||||
WHERE user_roles.user_id = auth.uid()
|
||||
AND role IN ('superuser', 'admin')
|
||||
) THEN
|
||||
RAISE EXCEPTION 'Access denied: requires admin or superuser role'
|
||||
USING ERRCODE = '42501';
|
||||
END IF;
|
||||
|
||||
-- Return profiles with emails from auth.users
|
||||
RETURN QUERY
|
||||
SELECT
|
||||
p.id,
|
||||
p.user_id,
|
||||
p.username,
|
||||
COALESCE(au.email, 'unknown@email.com')::text as email,
|
||||
p.display_name,
|
||||
p.avatar_url,
|
||||
p.banned,
|
||||
p.created_at
|
||||
FROM public.profiles p
|
||||
LEFT JOIN auth.users au ON au.id = p.user_id
|
||||
ORDER BY p.created_at DESC;
|
||||
END;
|
||||
$$;
|
||||
Reference in New Issue
Block a user