Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen
ACL (Access Control List) används för att kontrollera behörigheter för resursoperationer. Ni kan tilldela behörigheter till roller, eller kringgå rollbegränsningar och direkt styra behörigheterna. ACL-systemet erbjuder en flexibel mekanism för behörighetshantering, som stöder behörighetssnuttar, middleware, villkorsbedömning och andra metoder.
ACL-objekt tillhör datakällor (dataSource.acl). Huvuddatakällans ACL kan snabbt nås via app.acl. För användning av ACL för andra datakällor, se kapitlet Hantering av datakällor.
Behörighetssnuttar (Snippet) kan registrera vanligt förekommande behörighetskombinationer som återanvändbara behörighetsenheter. När en roll är kopplad till en snutt får den motsvarande uppsättning behörigheter, vilket minskar dubbelkonfiguration och förbättrar effektiviteten i behörighetshanteringen.
acl.allow() används för att tillåta vissa operationer att kringgå rollbegränsningar. Detta är lämpligt för offentliga API:er, scenarier som kräver dynamisk behörighetsbedömning, eller när behörighetsbedömningen behöver baseras på begärans kontext.
Beskrivning av parametern condition:
'public' : Alla användare (inklusive oinloggade) kan komma åt, ingen autentisering krävs.'loggedIn' : Endast inloggade användare kan komma åt, kräver en giltig användaridentitet.(ctx) => Promise<boolean> eller (ctx) => boolean : Anpassad funktion som dynamiskt avgör om åtkomst är tillåten baserat på begärans kontext. Kan implementera komplex behörighetslogik.acl.use() används för att registrera anpassad behörighets-middleware, vilket gör det möjligt att infoga anpassad logik i behörighetskontrollflödet. Detta används vanligtvis tillsammans med ctx.permission för att definiera anpassade behörighetsregler. Det är lämpligt för scenarier som kräver ovanlig behörighetskontroll, till exempel offentliga formulär som behöver anpassad lösenordsverifiering, dynamiska behörighetskontroller baserade på begäransparametrar, med mera.
Typiska användningsscenarier:
Kontrollera behörigheter via ctx.permission:
Beskrivning av egenskapen ctx.permission:
skip: true : Kringgå efterföljande ACL-behörighetskontroller och tillåt direkt åtkomst.addFixedParams kan lägga till fasta databegränsningar (filter) för vissa resursoperationer. Dessa begränsningar kringgår rollbegränsningar och tillämpas direkt, och används vanligtvis för att skydda kritiska systemdata.
Tips:
addFixedParamskan användas för att förhindra att känslig data raderas eller modifieras av misstag, såsom systeminbyggda roller, administratörskonton etc. Dessa begränsningar verkar i kombination med rollbehörigheter, vilket säkerställer att även med behörigheter kan skyddad data inte manipuleras.
acl.can() används för att avgöra om en roll har behörighet att utföra en specificerad operation, och returnerar ett behörighetsresultatobjekt eller null. Detta används ofta för att dynamiskt kontrollera behörigheter i affärslogiken, till exempel i middleware eller operationens handler för att avgöra om vissa operationer är tillåtna baserat på roller.
Tips: Om flera roller skickas in, kontrolleras varje roll sekventiellt, och resultatet för den första rollen som har behörighet returneras.
Typdefinitioner:
Om ni vill att anpassade operationer ska kunna konfigureras i gränssnittet (till exempel visas på rollhanteringssidan), måste ni använda setAvailableAction för att registrera dem. Registrerade operationer kommer att visas i gränssnittet för behörighetskonfiguration, där administratörer kan konfigurera operationens behörigheter för olika roller.
Parameterbeskrivning:
{{t("key")}}).'new-data': Operationer som skapar ny data (som import, skapa, etc.).'existing-data': Operationer som modifierar befintlig data (som uppdatera, radera, etc.).'new-data'.Efter registrering kommer denna operation att visas i gränssnittet för behörighetskonfiguration, där administratörer kan konfigurera operationens behörigheter på rollhanteringssidan.