Sistem manajemen izin paling sederhana, dikembangkan berdasarkan Laravel5.5. Silakan beralih ke cabang any54
untuk versi Laravel5.4.
Any
adalah modul backend manajemen yang baru dan disederhanakan, termasuk kontrol izin paling sederhana. Ketika saya pertama kali menulis sistem izin, saya membaca kode sumber yang ditulis oleh orang asing. Berdasarkan kodenya, saya menulis backend berdasarkan Laravel5.2 IAdmin
. Ini adalah sistem izin asli. Untuk penggunaan umum, semua izin ditulis dalam file konfigurasi.
iDashboard
mengoptimalkan ide desain dan struktur kode berdasarkan IAdmin
, dan mengikat izin ke nama perutean. Middleware dapat menentukan izin semua pengontrol. Dikembangkan berdasarkan Laravel 5.3, satu-satunya optimasi adalah dengan mengikat izin dan alias perutean, sehingga kode dapat langsung digunakan setelah ditulis. Namun, masalah terlalu banyak file konfigurasi belum terpecahkan.
Any
proyek yang direkonstruksi berdasarkan pengalaman iDashboard
. Kontrol izin di versi sebelumnya harus ditentukan sendiri. Hal ini sangat mengurangi kebutuhan untuk menentukan izin dan konfigurasi. Any
yang lahir.
Prinsip utama Any
adalah mendapatkan pengontrol (pengontrol) dan metode (metode) yang sedang diakses berdasarkan rute yang dikunjungi oleh pengguna. Pengontrol menambahkan metode untuk menghasilkan nilai izin unik metode tertentu. Jika Anda adalah administrator super, meskipun Anda tidak memiliki izin ini, izin tersebut akan secara otomatis diberikan kepada peran administrator super. Untuk menghindari terlalu banyak permintaan middleware, salinan semua izin pengguna saat ini akan di-cache setelah pengguna berhasil masuk. Saat menilai izin, izin tersebut langsung diperoleh dari cache akan memperbarui cache. Selain itu, banyak optimasi telah dilakukan pada kode.
Ini hanyalah permulaan dari fungsi dasar, semoga mendapat lebih banyak inspirasi
Unduh kode proyek ini secara lokal:
git clone https://github.com/lanceWan/any.git
Masuk ke proyek dan instal composer
:
cd any
composer install
Konfigurasi file .env
:
[sudo]cp .env.example .env
Perhatikan izin eksekusi di Linux dan Mac!
Konfigurasikan basis data:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Migrasikan data:
php artisan migrate --seed
Oke, proyek sudah dikonfigurasi, cukup kunjungi beranda dan login. Jika Anda belum tahu rutenya, Anda bisa langsung ke file routes/web.php
. Akun administrator default: iwanli
, kata sandi: 123456
. Jika Anda mengonfigurasinya di Linux
atau Mac
, harap perhatikan izin direktori terkait. Saya tidak akan membahas detailnya di sini, selamat menikmati!
Perkembangan Any
tidak lepas dari masukan dan saran semua orang. Jika ada ide bisa langsung disampaikan di https://github.com/lanceWan/any/issues Terima kasih.
Grup pertukaran pembelajaran Laravel: 312621686