SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
TABLE public.invoices ( id uuid default uuid_generate_v4() primary key, client_id uuid NOT NULL, invoice_details jsonb not null ) TYPE public.user_type AS ENUM ( 'client', 'admin', 'account manager', ); TABLE public.client ( id uuid DEFAULT extensions.uuid_generate_v4() NOT NULL, status public.client_status, client_number text, profile_id uuid, first_name text, last_name text, ); TABLE public.profile ( id uuid DEFAULT extensions.uuid_generate_v4() NOT NULL, auth_id uuid, type public.user_type, ); CREATE POLICY "invoices_select_policy" ON public.invoices FOR SELECT TO authenticated USING ( -- Allow access for admin and account manager roles ( (auth.jwt () -> 'app_metadata' ->> 'role') IN ('admin', 'account manager') ) OR -- Allow clients to access their own invoices client_id IN ( SELECT c.id FROM public.client c WHERE c.profile_id IN ( SELECT p.id FROM public.profile p WHERE p.auth_id = auth.uid () ) ) );

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear