Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie
ACL (Access Control List) wordt gebruikt om de toegangsrechten voor resource-operaties te beheren. U kunt rechten toekennen aan rollen, of rolbeperkingen overslaan en rechten direct afdwingen. Het ACL-systeem biedt een flexibel mechanisme voor rechtenbeheer, met ondersteuning voor rechtenfragmenten (snippets), middleware, voorwaardelijke controles en andere methoden.
ACL-objecten behoren tot gegevensbronnen (dataSource.acl). De ACL van de hoofdgegevensbron is snel toegankelijk via app.acl. Voor het gebruik van ACL's van andere gegevensbronnen, zie het hoofdstuk Gegevensbronbeheer.
Rechtenfragmenten (Snippets) maken het mogelijk om veelgebruikte rechtencombinaties te registreren als herbruikbare eenheden. Zodra een rol aan een fragment is gekoppeld, krijgt deze de bijbehorende set rechten, wat dubbele configuratie vermindert en de efficiëntie van het rechtenbeheer verbetert.
acl.allow() wordt gebruikt om bepaalde operaties rolbeperkingen te laten omzeilen. Dit is handig voor openbare API's, scenario's die dynamische rechtenevaluatie vereisen, of gevallen waarin rechtenbeoordeling gebaseerd moet zijn op de context van het verzoek.
Beschrijving van de condition-parameter:
'public' (openbaar): Elke gebruiker (inclusief niet-ingelogde gebruikers) heeft toegang, zonder enige authenticatie.'loggedIn' (ingelogd): Alleen ingelogde gebruikers hebben toegang; vereist een geldige gebruikersidentiteit.(ctx) => Promise<boolean> of (ctx) => boolean: Een aangepaste functie die dynamisch bepaalt of toegang is toegestaan op basis van de context van het verzoek. Hiermee kunt u complexe rechtenlogica implementeren.acl.use() wordt gebruikt om aangepaste rechtenmiddleware te registreren, waarmee u aangepaste logica kunt invoegen in het rechtencontroleproces. Dit wordt meestal gebruikt in combinatie met ctx.permission voor het definiëren van aangepaste rechtenregels. Het is geschikt voor scenario's die onconventionele rechtencontrole vereisen, zoals openbare formulieren die aangepaste wachtwoordverificatie nodig hebben, of dynamische rechtencontroles op basis van verzoekparameters.
Typische toepassingsscenario's:
Rechten beheren via ctx.permission:
Beschrijving van de ctx.permission-eigenschap:
skip: true: Slaat de daaropvolgende ACL-rechtencontroles over en staat directe toegang toe.addFixedParams kan vaste gegevensbereik (filter) beperkingen toevoegen aan bepaalde resource-operaties. Deze beperkingen omzeilen rolbeperkingen en worden direct toegepast, meestal om kritieke systeemgegevens te beschermen.
Tip:
addFixedParamskan worden gebruikt om te voorkomen dat gevoelige gegevens per ongeluk worden verwijderd of gewijzigd, zoals ingebouwde systeemrollen of beheerdersaccounts. Deze beperkingen werken samen met rolrechten en zorgen ervoor dat zelfs met rechten, beschermde gegevens niet kunnen worden gemanipuleerd.
acl.can() wordt gebruikt om te controleren of een rol de rechten heeft om een gespecificeerde operatie uit te voeren, en retourneert een rechtenresultaatobject of null. Dit wordt vaak gebruikt om dynamisch rechten te controleren in bedrijfslogica, bijvoorbeeld in middleware of operatiehandlers om op basis van rollen te bepalen of bepaalde operaties zijn toegestaan.
Tip: Als u meerdere rollen doorgeeft, wordt elke rol sequentieel gecontroleerd en wordt het resultaat van de eerste rol die rechten heeft, geretourneerd.
Type definities:
Als u wilt dat aangepaste operaties configureerbaar zijn via de interface (bijvoorbeeld op de rolbeheerpagina), moet u deze registreren met setAvailableAction. Geregistreerde operaties verschijnen in de rechtenconfiguratie-interface, waar beheerders de operatierechten voor verschillende rollen kunnen instellen.
Parameterbeschrijving:
{{t("sleutel")}}).'new-data' (nieuwe gegevens): Operaties die nieuwe gegevens aanmaken (zoals importeren, toevoegen, etc.).'existing-data' (bestaande gegevens): Operaties die bestaande gegevens wijzigen (zoals bijwerken, verwijderen, etc.).'new-data'.Na registratie verschijnt deze operatie in de rechtenconfiguratie-interface, waar beheerders de rechten voor de operatie kunnen configureren op de rolbeheerpagina.