| Door: . | Categorie: Algemeen.

Een introductie tot de Joomla! 1.6 ACL API

Dit artikel is een vertaling van deze blog op webimagery.

Er is al veel te doen over het nieuwe Joomla! 1.6 ACL systeem. Dat leek mij een goede kans om een introductie te schrijven over hoe deze nieuwe API te gebruiken bij het bouwen van extensies. We hebben veel tijd en energie geïnvesteerd in het bouwen van de 1.6 API en we zijn dan ook trots op het resultaat omdat het een goede mix is tussen eenvoud en kracht.

De toepassingstypen

Het meest belangrijke dat je moet begrijpen van het nieuwe Joomla! 1.6 ACL syseem zijn de drie (op het moment van schrijven) toepassingstypen.

Type 1: Actie

Primair is een type 1 regel een simpele actie zoals "beheer" of "log in" of "bewerken". Een type 1 regel wordt gekarakteriseerd als een actie die niet wordt toegepast op een specifiek item. Bijvoorbeeld: een veelgebruikte type 1 regel in Joomla! 1.6 is "beheer" die wordt gebruikt om te bepalen wie toegang hebben tot de beheerdersinterface van een bepaalde component.

Type 2: Actie op een item

Een type 2 regel komt overeen met een type 1 regel behalve dat de type 2 regel is gelinkt aan precies één item. Dit item kan een artikel, contact, weblink of iets vergelijkbaars zijn. Een type 2 regel wordt gedefinieerd als een regel die één actie aan precies één item linkt. Als je wilt bepalen wie een bepaald artikel mag bewerken dan gebruik je hiervoor een type 2 regel.

Type 3: Bekijken

Type 3 regels zijn speciaal ontworpen om te bepalen wie content mogen bekijken. Type 3 regels worden enigszins anders gebruikt om dec website zo snel mogelijk te houden aangezien de meeste gebruikers met name "browsen" op de website. Type 3 regels worden bijna exact hetzelfde toegepast als de Joomla! 1.5 `access` kolommen (publiek, geregistreerd, speciaal) die de meeste databasetabellen gebruiken.

Het uitvoeren van toegangscontroles

"Bekijken" permissies.

Als je al eens eerder een Joomla! extensie hebt gebouwd dan ben je waarschijnlijk bekend met de JUser::aid variabele die wordt gebruikt om te controleren of een gebruiker permissie heeft om iets te bekijken. De controles voor "bekijken" in Joomla! 1.6 lijken veel op die in Joomla! 1.5. In Joomla! 1.5 doe je waarschijnlijk iets als:
acl01
Het concept in Joomla! 1.6 is eigenlijk hetzelfde behalve dat een gebruiker in Joomla! 1.5 was beperkt tot éé toegangsniveau (Publiek, Geregistreerd, of Speciaal) terwijl in Joomla! 1.6, een gebruiker één of meerdere toegangsniveaus kan hebben. In Joomla! 1.6, zou je zoiets doen:
acl02
Dat is het! Dat is alles wat je moet doen om de basiscontrole voor "bekijken" te implementeren in je Joomla! 1.6 extensies. Lekker makkelijk toch?

Actie Permissies

Nu we de controle voor "Bekijken" permissies hebben toegepast, kunnen we eens naar een simpele type 1 toegangscontrole kijken. Laten we zeggen dat een gebruiker rechten krijgt voor het beheer van com_content wat eigenlijk wil zeggen dat we de volgende vraag moeten beantwoorden voor een gebruiker, "heeft de gebruiker toegang tot de com_content beheerdersinterface?" Ik hou absoluut van de eenvoud waarmee deze controles kunnen worden uitgevoerd:
acl03
Gedaan! We hebben zojuist de controle uitgevoerd die checkt of de gebruiker toegang heeft tot de beheerdersinterface van com_content gebaseerd op de configuratie van de toegangsniveaus. In Joomla! 1.6 kun je zelfs met minder code toe aangezien Joomla! 1.6 alleen PHP 5.2 en hoger ondersteunt wat betekent dat je gebruik kunt maken van "chaining" om de hoeveelheid code te verminderen:
acl04
Gaaf he? Inderdaad!

Dit is het einde van dit artikel. De volgende keer zal ik iets dieper ingaan op het gebruik van het nieuwe ACL systeem, bijvoorbeeld type 2 regels, en wellicht ook hoe je een ACL-systeem moet opzetten voor je eigen extensies. Veel plezier!