Liigu sisu juurde

Audiitorfirma tööaja arvestus

Projektide ja töötajate tööaja arvestus audiitorfirmale · Ehitatud nullist, üksi

Uuendatud

Enne

Kliendid, projektid ja töötunnid asusid ühes kohas, kus kõik firmas nägid ja muutsid kõike.

Pärast

87

õiguste märkeruutu tõestatud andmebaasi vastu enne iga väljalaset; 30 mitte midagi tegevat peideti.

Kuidas see toimib
  1. 1Inimene:Omanik

    Koostab rollid märkeruutudega valdkondade kaupa (kliendid, projektid, tööaeg, aruanded) vaatamiseks, loomiseks, muutmiseks ja kustutamiseks.

  2. 2Inimene:Töötaja

    Logib tunnid kliendi, projekti ja ülesande alla või broneerib puhkuse.

    Tarkvara:Veebirakendus

    Tuletab enne tähtaega meelde kõigile, kelle tööajatabel on veel tühi.

  3. 3Inimene:Projekti administraator

    Kinnitab või lükkab tagasi oma projektimeeskonna nädala tööajatabeli.

  4. 4Tarkvara:Andmebaas

    Näitab igaühele ainult seda, mida tema roll lubab: töötajad näevad oma tunde, projekti administraatorid oma meeskonda, omanikud kõiki kliente.

  5. 5Inimene:Omanik

    Loeb tunde kliendi, projekti ja inimese kaupa dashboard'idelt ja aruannetest.

Alati töös

  • Varem sai igaüks firmas avada iga kliendi ja kõigi töötunnid. Nüüd keeldub andmebaas kõigest, mida roll ei luba, isegi kui ekraan seda küsib.
  • Enne iga pushi testitakse iga rolli andmebaasi isoleeritud koopia vastu.

Probleem

Audiitorfirma pidas oma kliente, projekte ja töötajate tunde tööriistas, kus iga inimene sai avada iga kliendi ja kõigi töötunnid.

Diagnoos

Juurdepääsukontroll ebaõnnestub märkamatult, kui see asub ekraanis. Seepärast pidi iga reegel olema andmebaasis ja tõestatud testidega.

Kaalutud valikud

  1. Iga roll näeb erinevaid andmeid. Kus asuvad juurdepääsureeglid?

    Valitud

    Andmebaasis endas, testitud iga rolli jaoks enne iga väljalaset

    Ekraan ei saa lekitada seda, mida andmebaas keeldub andmast. Hind: testikäivitus isoleeritud koopial enne iga pushi.

    • Tagasi lükatud

      Ainult ekraanides

      Inimene võis näha või muuta andmeid, mida ekraan pidi peitma.

  2. Kirjet pole enam vaja. Kas kustutada või säilitada?

    Valitud

    Arhiveerida ja anonümiseerida

    Tööaja kirjete ajalugu jääb terviklikuks.

    • Tagasi lükatud

      Kustutada

      Kustutamine viib kaasa ka tööaja kirjete ajaloo.

Lahendus

Ühe lehega veebirakendus hallatud Postgresi peal. Iga juurdepääsureegel asub andmebaasis ning seda tõestab enne iga väljalaset automaatne rollimaatriks.

Rakendus
  • React
  • Vite
  • TanStack Router
  • TanStack Query
  • shadcn/ui
  • Chart.js
Andmed ja turvalisus
  • Supabase
  • PostgreSQL row-level security
  • Edge Functions (Deno)
Majutus
  • Cloudflare
Kvaliteet
  • GitHub Actions
  • Role-matrix tests
  • Vitest
  • Property-based tests
  • Accessibility tests

Arvud: Automaatne rollikontroll, 2026-09-25