Timeføring for revisjonsbyrå
Prosjekt- og timeføring for ansatte i et revisjonsbyrå · Bygget fra bunnen av, alene
Oppdatert
Før
Kunder, prosjekter og timer lå på ett sted der alle i firmaet kunne se og endre alt.
Etter
87
avkrysningsbokser for tillatelser bevist mot databasen før hver utrulling; de 30 som ikke gjorde noe, ble skjult.
- 1Person:Eier
Bygger roller med avkrysningsbokser per område (kunder, prosjekter, tid, rapporter) for visning, oppretting, redigering og sletting.
- 2Person:Medarbeider
Fører timer mot en kunde, et prosjekt og en oppgave, eller registrerer fri.
Programvare:NettappMinner alle med tom timeliste om det før fristen.
- 3Person:Prosjektadministrator
Godkjenner eller avviser ukens timeliste for sitt eget prosjektteam.
- 4Programvare:Database
Viser hver person bare det rollen tillater: medarbeidere ser egne timer, prosjektadministratorer teamet sitt, eiere alle kunder.
- 5Person:Eier
Leser timer per kunde, prosjekt og person i dashboardene og rapportene.
Gjelder alltid
- Før kunne alle i firmaet åpne alle kunder og alles timer. Nå avviser databasen alt en rolle ikke har lov til, selv om et skjermbilde ber om det.
- Før hver push testes hver rolle mot en isolert kopi av databasen.
Problem
Et revisjonsbyrå førte kunder, prosjekter og medarbeidernes timer i et verktøy der hver person kunne åpne alle kunder og alles tid.
Diagnose
Tilgangskontroll svikter i det stille når den ligger i skjermbildet, så hver regel måtte ligge i databasen og bevises med tester.
Alternativer jeg veide
Hver rolle ser ulike data. Hvor ligger tilgangsreglene?
Valgt
I selve databasen, testet for hver rolle før hver utrulling
Skjermen kan ikke lekke det databasen nekter å gi. Kostnad: en testkjøring på en isolert kopi før hver push.
Forkastet
Bare i skjermbildene
En person kunne se eller endre data som skjermen skulle skjule.
En post trengs ikke lenger. Slette den eller beholde den?
Valgt
Arkivere og anonymisere den
Timelistehistorikken forblir intakt.
Forkastet
Slette dem
Sletting fjerner timelistehistorikken i en kaskade.
Løsning
En enkeltsideapp på administrert Postgres. Hver tilgangsregel ligger i databasen og bevises av en automatisk rollematrise før hver utrulling.
- App
- React
- Vite
- TanStack Router
- TanStack Query
- shadcn/ui
- Chart.js
- Data og sikkerhet
- Supabase
- PostgreSQL row-level security
- Edge Functions (Deno)
- Hosting
- Cloudflare
- Kvalitet
- GitHub Actions
- Role-matrix tests
- Vitest
- Property-based tests
- Accessibility tests
Relaterte tjenester
Tall: Automatisk rollekontroll, 2026-09-25