javascript / expert
Snippet
Bitweise Berechtigungs-Flag-Maskierung in Next.js dynamischen Routen-Zugriffsauswertern
Bitweise Maskierung bündelt komplexe Rollenrechte in einen einzigen Integer-Vektor. Die Auswertung von Berechtigungen in Next.js Routen-Guards mittels bitweisem UND ermöglicht extrem schnelle Prüfungen ohne dynamische Objekt-Lookups.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
export const PERMISSIONS = Object.freeze({READ: 1 << 0,WRITE: 1 << 1,DELETE: 1 << 2,ADMIN: 1 << 3,});export function authorizeRouteAccess(userMask, requiredMask) {const isAdmin = (userMask & PERMISSIONS.ADMIN) !== 0;if (isAdmin) return true;return (userMask & requiredMask) === requiredMask;}
nextjs
Erklärung
1
READ: 1 << 0,
Verwendet Bitshift-Operatoren zur Erzeugung eindeutiger binärer Bitmasken (0001, 0010, 0100, 1000) für granulare Rechte.
2
return (userMask & requiredMask) === requiredMask;
Führt einen bitweisen UND-Vergleich durch, um zu prüfen, ob alle in requiredMask geforderten Bits im userMask gesetzt sind.