roller jeg kan finne på
Rettighetssystemet fikk den siste biten jeg ønsket meg. Siden RBAC-ombyggingen har siden hatt en rettighetsmatrise jeg kan redigere, hvilken rolle som kan moderere kommentarer, hvilken som ser brukerlista, alt sammen kan skrus av og på. Men selve rollene var hugget i stein: user, moderator, dev, admin, ta det eller la være. Ville jeg ha en "juniormoderator"? Synd, da måtte det kode til.
Nå er roller bare data. Rettighetssiden viser dem som en stige, user festet i bunnen, admin festet i toppen, og jeg kan lage en ny rolle hvor som helst imellom, gi den nytt navn, flytte den opp og ned, eller slette den. Plassen i stigen er rang, og rang er det som avgjør hvem som kan gjøre noe med hvem, så å flytte en rolle over moderator betyr bokstavelig talt at moderatorer ikke lenger kan røre de som har den. En ny rolle starter med null rettigheter til jeg skrur på noen, som føltes som den eneste fornuftige starten.
Delen jeg faktisk brukte omtanke på var sletting. Sletter jeg en rolle noen har, må jeg bekrefte med det nøyaktige antallet som har den, og så faller alle tilbake til vanlig user. Og tokenene de fortsatt går rundt med? Et økt-token med en rolle som ikke finnes lenger får ingenting i det hele tatt, hele systemet behandler ukjente roller som rang null uten rettigheter. Jeg testet akkurat det tilfellet, lagde en rolle, ga noen et token med den, slettet rollen, spilte av tokenet igjen: 403. Det er den kjedelige typen test som lar meg sove.
En liten bonusfiks mens jeg var der inne: regelen om at bare høyere rang kan endre brukernavn og e-post sjekket før etter rollen som bokstavelig talt het "dev". Siden dev nå kan få nytt navn sammenligner den sjekken stigeposisjoner i stedet for navn. Navn er etiketter nå, stigen er sannheten.