När ett system används av en person är behörigheter inget problem. När det används av tio — personal, styrelse, extern hjälp — blir frågan "vem får se vad?" en av de viktigaste i hela bygget. Slarvas den bort får alla tillgång till allt, och då är det bara en tidsfråga innan något ändras av misstag eller läses av fel person.
Principen: minsta nödvändiga behörighet
Grundregeln är enkel: varje användare ska ha exakt den behörighet arbetsuppgiften kräver — varken mer eller mindre. Den som checkar in besökare i dörren behöver se kvällens bokningslista, inte ekonomin. Den som rapporterar en mätarställning behöver se sina egna mätare, inte grannens. Det skyddar uppgifterna, men lika mycket skyddar det användarna: ett gränssnitt som bara visar det som är relevant är också ett enklare gränssnitt.
Så delar vi in rollerna
I våra system, som Eventprime och MeterFlow, arbetar vi med en tydlig rolltrappa:
- Användare — utför det dagliga arbetet och ser det som hör till den egna uppgiften
- Administratör — hanterar innehåll och löpande drift, men inte systemets grundinställningar
- Superadministratör — hanterar användare, roller och inställningar som påverkar hela systemet
Färre, tydliga roller slår många finkorniga. Ett system med trettio kryssrutor per användare blir i praktiken ett system där ingen vågar röra behörigheterna alls.
Detaljerna som avgör i praktiken
- Behörigheten kontrolleras på servern — att dölja en knapp i gränssnittet är inte skydd; varje anrop ska prövas
- Rolländringar loggas — vem som fick vilken behörighet, när och av vem
- Ingen kan låsa ute alla — systemet ska vägra ta bort den sista superadministratören
- Roller går att ändra utan utvecklare — personal byts, och det ska vara ett klick, inte ett ärende
Behörighetsmodellen är en av de saker som är billig att göra rätt från början och dyr att rätta i efterhand. Därför är den med i kravbilden i varje system vi bygger — långt innan första raden kod skrivs.