Evidence času pro auditorskou firmu
Evidence času projektů a zaměstnanců pro auditorskou firmu · Vytvořeno od základu, samostatně
Aktualizováno
Před
Klienti, projekty a hodiny žily na jednom místě, kde mohl každý ve firmě všechno vidět a měnit.
Po
87
zaškrtávací pole oprávnění ověřená proti databázi před každým nasazením; 30 polí, která nic nedělala, bylo skryto.
- 1Člověk:Vlastník
Vytváří role pomocí zaškrtávacích polí pro každou oblast (klienti, projekty, čas, reporty) a pro zobrazení, vytvoření, úpravu a smazání.
- 2Člověk:Zaměstnanec
Zapisuje hodiny ke klientovi, projektu a úkolu nebo si zadává volno.
Software:Webová aplikacePřipomene každému, kdo má před termínem stále prázdný výkaz, že ho má vyplnit.
- 3Člověk:Správce projektu
Schvaluje nebo zamítá týdenní výkaz pro tým svého projektu.
- 4Software:Databáze
Ukáže každému jen to, co jeho role dovoluje: zaměstnanci vidí vlastní hodiny, správci projektů svůj tým, vlastníci všechny klienty.
- 5Člověk:Vlastník
Čte hodiny podle klienta, projektu a osoby v dashboardech a reportech.
Vždy platí
- Dříve mohl každý ve firmě otevřít každého klienta i hodiny všech ostatních. Nyní databáze odmítne vše, co role nedovoluje, i když o to obrazovka požádá.
- Před každým pushem se každá role testuje na izolované kopii databáze.
Problém
Auditorská firma vedla klienty, projekty a hodiny zaměstnanců v nástroji, kde mohl každý otevřít každého klienta i čas všech ostatních.
Diagnóza
Řízení přístupu selhává nenápadně, když žije jen v rozhraní, takže každé pravidlo muselo žít v databázi a být prokázané testy.
Varianty, které jsem zvažoval
Každá role vidí jiná data. Kde žijí pravidla přístupu?
Zvoleno
Přímo v databázi, otestovaná pro každou roli před každým nasazením
Obrazovka nemůže prozradit to, co databáze odmítne vydat. Cena: testovací běh na izolované kopii před každým pushem.
Zamítnuto
Jen v obrazovkách
Člověk mohl vidět nebo měnit data, která měla obrazovka skrýt.
Záznam už není potřeba. Smazat ho, nebo ponechat?
Zvoleno
Archivovat a anonymizovat
Historie výkazů zůstane neporušená.
Zamítnuto
Smazat
Smazání kaskádově odstraní historii výkazů.
Řešení
Jednostránková webová aplikace na spravovaném Postgresu. Každé pravidlo přístupu žije v databázi a před každým nasazením je prokázáno automatickou maticí rolí.
- Aplikace
- React
- Vite
- TanStack Router
- TanStack Query
- shadcn/ui
- Chart.js
- Data a zabezpečení
- Supabase
- PostgreSQL row-level security
- Edge Functions (Deno)
- Hosting
- Cloudflare
- Kvalita
- GitHub Actions
- Role-matrix tests
- Vitest
- Property-based tests
- Accessibility tests
Související služby
Čísla: Automatická kontrola rolí, 2026-09-25