Das einfachste Berechtigungsverwaltungssystem, entwickelt auf Basis von Laravel5.5. Bitte wechseln Sie zu any54
Zweig für die Laravel5.4-Version.
Any
ist das einfachste neue Management-Backend-Modul, einschließlich der einfachsten Berechtigungskontrolle. Als ich das Berechtigungssystem zum ersten Mal schrieb, las ich den von einem Ausländer geschriebenen Quellcode. Basierend auf seinem Code habe ich ein Backend basierend auf Laravel5.2 IAdmin
geschrieben. Dies ist das ursprüngliche Berechtigungssystem. Für die öffentliche Verwendung werden alle Berechtigungen in die Konfigurationsdatei geschrieben.
iDashboard
optimiert die Designideen und die Codestruktur basierend auf IAdmin
und bindet Berechtigungen an Routing-Namen. Eine Middleware kann die Berechtigungen aller Controller ermitteln. Basierend auf Laravel 5.3 entwickelt, besteht die einzige Optimierung darin, Berechtigungen und Routing-Aliase zu binden, sodass der Code direkt nach dem Schreiben verwendet werden kann. Das Problem zu vieler Konfigurationsdateien wurde jedoch nicht gelöst.
Gibt es eine Möglichkeit, Berechtigungen wie ACL Any
zu generieren iDashboard
zu beurteilen? Dadurch wird die Notwendigkeit, Berechtigungen und Konfigurationen zu definieren, erheblich reduziert. Any
wurde geboren.
Das Hauptprinzip von Any
besteht darin, den aktuell aufgerufenen Controller (Controller) und die Methode (Methode) basierend auf der vom Benutzer besuchten Route abzurufen. Der Controller fügt die Methode hinzu, um einen eindeutigen Berechtigungswert zu generieren. Die Middleware beurteilt, wann ein Benutzer auf a zugreift bestimmte Methode. Wenn Sie ein Superadministrator sind, wird die Berechtigung automatisch der Superadministratorrolle zugewiesen, auch wenn Sie nicht über diese Berechtigung verfügen. Um zu viele Middleware-Abfragen zu vermeiden, wird nach erfolgreicher Anmeldung des Benutzers eine Kopie aller Berechtigungen des aktuellen Benutzers zwischengespeichert. Bei der Beurteilung der Berechtigungen werden diese direkt aus dem Cache abgerufen. Jede Aktualisierung der Berechtigungen einer beliebigen Rolle aktualisiert den Cache. Darüber hinaus wurden viele Optimierungen am Code vorgenommen.
Dies ist nur der Anfang der Grundfunktionen, ich hoffe auf weitere Inspiration
Laden Sie den Code dieses Projekts lokal herunter:
git clone https://github.com/lanceWan/any.git
Geben Sie das Projekt ein und installieren Sie composer
:
cd any
composer install
Konfigurationsdatei .env
:
[sudo]cp .env.example .env
Beachten Sie die Ausführungsberechtigungen unter Linux und Mac!
Konfigurieren Sie die Datenbank:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Daten migrieren:
php artisan migrate --seed
OK, das Projekt wurde konfiguriert. Besuchen Sie einfach die Homepage und melden Sie sich an. Wenn Sie die Route nicht kennen, können Sie direkt zur Datei routes/web.php
gehen. Standardadministratorkonto: iwanli
, Passwort: 123456
. Wenn Sie es unter Linux
oder Mac
konfigurieren, achten Sie bitte auf die Berechtigungen der entsprechenden Verzeichnisse. Ich werde hier nicht näher darauf eingehen, viel Spaß!
Die Entwicklung von Any
ist untrennbar mit dem Feedback und den Vorschlägen aller verbunden. Wenn Sie Ideen haben, können Sie diese direkt unter https://github.com/lanceWan/any/issues einreichen.
Laravel-Lernaustauschgruppe: 312621686