Plugin-Berechtigungsverträge wurden in 2.3.73 eingeführt und in 2.3.74 verschärft. Plugins deklarieren ihre Berechtigungen in plugin.json; Core validiert es und synchronisiert es dann mit der dynamischen Autorisierung.
Namespace und Routenschutz
Tasten müssen kleingeschrieben und geformt sein plugin.{nama-plugin}.{resource}.{action}. Der Anbietername muss mit dem Plugin-Namen identisch sein. Das Routen-Dashboard kann deklariert werden permission; Routenberechtigungen können nicht bereichert werden, da Routen keinen Ressourcenkontext enthalten. roles bleibt eine Kompatibilitätsrichtlinie und ein Verschärfungsfilter.
{
"name": "example",
"permissions": [{
"key": "plugin.example.settings.access",
"label": "Access Example Settings",
"supports_scope": false,
"default_roles": ["admin"],
"delegable": true
}]
}
Standardrollen
default_roles Akzeptieren Sie bei der Synchronisierung nur Autor, Herausgeber oder Administrator und setzen Sie die Rolle „Grant-System“ als Seed. Wenn Berechtigungen Routen und Standardeinstellungen ungeschrieben lassen, löscht Core sie aus Kompatibilitätsgründen roles. Wenn beide geschrieben werden, müssen die Werte identisch sein.
Delegierbarkeit
delegable:true ermöglicht die Verwaltung benutzerdefinierter Rollenzuteilungen. delegable:false Beschränken von Zuweisungen auf die Standardsystemrolle und Synchronisierung, Entfernen veralteter Berechtigungen für benutzerdefinierte Rollen. Dies ist nützlich für Plugin-Vorgänge, deren Delegierung nicht sicher ist.
Lebenszyklus und Datei geschlossen
Aktive Plugins werden nach dem Laden und davor synchronisiert admin_init. Deaktivierte Plugin-Berechtigungen werden jedoch weiterhin erkannt is_active=0; Durch die Deinstallation werden Berechtigungen und Gewährungen entfernt. Label-/Delegierbarkeitsänderungen können aktualisiert werden, semantische Anbieter-/Ressourcen-/Aktions-/Bereichskollisionen führen jedoch zu einem Rollback. Routenberechtigungen gelten nicht als bereit, wenn die Synchronisierung fehlschlägt.
Kollisionsschlüssel, Eigentum, Core-Routen, andere Plugin-Routen oder ungültige Verträge werden abgelehnt. Plugin-ACLs sind zusätzliche Anforderungen: Routen müssen weiterhin Core Guard, Site Owner-Richtlinie (falls verwendet), Kompatibilitätsrollenfilter und Berechtigungsprüfungen bestehen. Keine Plugin-Deklarationen dürfen den Core Guard umgehen.