İmage upload,sıkıştırma

This commit is contained in:
2026-01-13 23:36:40 +03:00
parent 6bbae0de21
commit 70f61a76b0
11 changed files with 795 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
-- Create sliders table
create table if not exists sliders (
id uuid default gen_random_uuid() primary key,
title text not null,
description text,
image_url text not null,
link text,
"order" integer default 0,
is_active boolean default true,
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);
-- Enable RLS
alter table sliders enable row level security;
-- Policies for Sliders Table
create policy "Public sliders are viewable by everyone."
on sliders for select
using ( true );
create policy "Admins can insert sliders."
on sliders for insert
with check (
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);
create policy "Admins can update sliders."
on sliders for update
using (
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);
create policy "Admins can delete sliders."
on sliders for delete
using (
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);
-- STORAGE POLICIES (Assuming bucket 'images' exists)
-- You must create the 'images' bucket in Supabase Dashboard manually if not exists,
-- or we can try to insert it via SQL if extensions allow, but usually dashboard is safer for buckets.
-- Below policies assume the bucket is named 'images' and is set to PUBLIC.
-- 1. Allow public read access to everyone
create policy "Public Access"
on storage.objects for select
using ( bucket_id = 'images' );
-- 2. Allow authenticated admins to upload
create policy "Admin Upload"
on storage.objects for insert
with check (
bucket_id = 'images' and
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);
-- 3. Allow admins to update/delete their images (or all images)
create policy "Admin Update Delete"
on storage.objects for update
using (
bucket_id = 'images' and
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);
create policy "Admin Delete"
on storage.objects for delete
using (
bucket_id = 'images' and
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);