Rosorum

Eerste keer instellen

Verbind het beheerportaal met jouw Supabase project.

Stap 1 — Supabase verbinding

Alleen lokaal opgeslagen. Nodig om accounts aan te maken en rollen te wijzigen.

Stap 2 — Eerste bestuur account aanmaken


Stap 3 — Supabase database SQL (klik om te openen)

Voer dit eenmalig uit in de Supabase SQL editor. Ga naar jouw project → SQL Editor → New query.

-- Profielen (naam en actief status per gebruiker) create table if not exists profielen ( id uuid references auth.users on delete cascade primary key, naam text not null, actief boolean default true, created_at timestamptz default now() ); alter table profielen enable row level security; create policy "eigen profiel" on profielen for select using (auth.uid() = id); create policy "bestuur leest alle profielen" on profielen for select using ( (auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur' ); -- Rol rechten (welke tegel welke rol mag zien) create table if not exists rol_rechten ( rol text not null, tegel text not null, toegang boolean default false, primary key (rol, tegel) ); alter table rol_rechten enable row level security; create policy "authenticated leest rechten" on rol_rechten for select using (auth.role() = 'authenticated'); create policy "bestuur beheert rechten" on rol_rechten for all using ((auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur') with check ((auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur'); -- Standaard rechten per rol insert into rol_rechten (rol, tegel, toegang) values ('bestuur', 'website', true), ('bestuur', 'roostering', true), ('bestuur', 'personeel', true), ('bestuur', 'bestanden', true), ('bestuur', 'gebruikers', true), ('administratie', 'website', true), ('administratie', 'roostering', false), ('administratie', 'personeel', false), ('administratie', 'bestanden', true), ('administratie', 'gebruikers', false), ('vrijwilliger', 'website', false), ('vrijwilliger', 'roostering', true), ('vrijwilliger', 'personeel', false), ('vrijwilliger', 'bestanden', true), ('vrijwilliger', 'gebruikers', false) on conflict do nothing; -- Openingstijden (1 rij, id=1) create table if not exists openingstijden ( id int primary key default 1, maandag_status text default 'gesloten', maandag_tijden text default 'Gesloten', dinsdag_status text default 'open', dinsdag_tijden text default '08:30 – 16:30 uur', weekend_status text default 'open', weekend_tijden text default '10:00 – 13:00 uur', extra_noot text default 'Op feestdagen of bij bijzondere omstandigheden kunnen tijden afwijken. Check onze Facebook pagina voor actuele informatie.' ); alter table openingstijden enable row level security; create policy "iedereen leest openingstijden" on openingstijden for select using (true); create policy "bestuur beheert openingstijden" on openingstijden for all using ((auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur') with check ((auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur'); insert into openingstijden (id) values (1) on conflict do nothing;

Dashboard

Actieve gebruikers
Actief personeel
Sponsors
Verjaardagen (30 dgn)
🎂

Beschikbare modules

🎂
Aankomende verjaardagen
Personeel gesorteerd op eerstvolgende verjaardag
Laden...

📰 Nieuwsberichten

TitelDatumStatusActies
Laden...

Alle personeelsleden

NaamFunctieTypeContactStatusActies
Laden...

💛 Sponsors

BedrijfPakketLooptijdStatusActies
Laden...
📁 Bestanden
📂
Bestanden hierheen slepen om te uploaden
Laden...
💰

Boekhouding

Inkomsten en uitgaven bijhouden, financiële overzichten per periode en exporteren naar Excel.

In planning · 5% gereed

🎭 Rolverdeling

Laden...

👤 Gebruikers

NaamRolStatusAangemaaktActies
Laden...

⚙️ Supabase verbinding

Alleen lokaal opgeslagen in je browser. Nodig voor gebruikersbeheer.

🗄️ Database SQL

Voer dit eenmalig uit in de Supabase SQL Editor als je de database nog niet hebt ingesteld.

Toon setup SQL
-- Profielen create table if not exists profielen ( id uuid references auth.users on delete cascade primary key, naam text not null, actief boolean default true, created_at timestamptz default now() ); alter table profielen enable row level security; create policy "eigen profiel" on profielen for select using (auth.uid() = id); create policy "bestuur leest alle profielen" on profielen for select using ( (auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur' ); -- Rol rechten create table if not exists rol_rechten ( rol text not null, tegel text not null, toegang boolean default false, primary key (rol, tegel) ); alter table rol_rechten enable row level security; create policy "authenticated leest rechten" on rol_rechten for select using (auth.role() = 'authenticated'); create policy "bestuur beheert rechten" on rol_rechten for all using ((auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur') with check ((auth.jwt() -> 'user_metadata' ->> 'rol') = 'bestuur'); -- Standaard rechten insert into rol_rechten (rol, tegel, toegang) values ('bestuur','website',true),('bestuur','roostering',true), ('bestuur','personeel',true),('bestuur','bestanden',true),('bestuur','gebruikers',true), ('administratie','website',true),('administratie','roostering',false), ('administratie','personeel',false),('administratie','bestanden',true),('administratie','gebruikers',false), ('vrijwilliger','website',false),('vrijwilliger','roostering',true), ('vrijwilliger','personeel',false),('vrijwilliger','bestanden',true),('vrijwilliger','gebruikers',false) on conflict do nothing;
⬆️ Bezig met uploaden...