Har bygget skift af organisationskontekst
Har designet et system til skift af organisationskontekst med localStorage i klienten og en spejlet cookie på serveren, så brugere kan optræde som de organisationer, de administrerer, mens autorisationen følger mindste privilegium.
Arbejdet udført: 2025

Foto: Eu_eugen / Pixabay 
Foto: Lukasgassner / Pixabay
handl sikkert som enhver organisation, du administrerer
Situation. På platformen kan en maritim fagperson administrere organisationer — virksomheder, akademier — som ikke har deres egne logins. Personen er kontoen; organisationen er noget, personen handler på vegne af. En bruger skal derfor kunne bevæge sig gennem hele appen som en hvilken som helst af de organisationer, vedkommende administrerer, og frit skifte mellem dem, uden at den bekvemmelighed bliver til et hul i autorisationen.
Opgave. Kontekstskiftet skulle være hurtigt og diskret for brugeren og samtidig sikre, at den aktive kontekst aldrig i sig selv kunne give nogen en adgang, som vedkommende ikke havde ret til.
Handling. En OrganizationContext håndterer det, med lagring på begge sider. På klienten er localStorage den autoritative kilde til, hvilken organisation brugeren aktuelt handler som, så skiftet sker øjeblikkeligt — uden en tur forbi serveren. En cookie på serversiden spejler valget, så serverrenderede sider når frem til den samme kontekst under SSR; en getServerViewMode på serveren læser den. Det vigtige er, at ingen adgangsbeslutning bygger på noget af det. Autorisationen kontrolleres igen på serveren ved hver request. Frontend‑konteksten er der for oplevelsens skyld — så brugeren ser det rigtige — og serveren er den eneste instans, der afgør, hvad brugeren må.
Resultat. En bruger kan uden besvær handle som enhver af de organisationer, vedkommende administrerer, og brugerfladen forbliver synkroniseret på både klient og server. Men fordi rettighederne verificeres på serveren hver gang, svækker intet af den bekvemmelighed sikkerheden. Den, der piller ved indholdet af localStorage, ændrer, hvad vedkommendes egen brugerflade viser, og intet mere — serveren siger stadig nej.
Se tilbage på Har designet en JSON‑passthrough‑arkitektur. Eller tag et kig på hele porteføljen.
Ét stykke af en længere fortegnelse — og det hele ligger her på sitet.
Hver post er skrevet på samme måde: situationen, opgaven, hvad vi gjorde, og hvad der ændrede sig.

