π‘οΈ Panduan Filament Shield
Filament Shield adalah alat (package) yang memudahkan kita mengelola Role (Peran) dan Permission (Izin) di aplikasi Filament. Paket ini dibuat di atas Spatie Permission.
π‘ Konsep Dasar (Untuk Pemula)β
Sebelum masuk ke teknis, pahami dua istilah ini:
- Role (Peran): Jabatan seseorang (contoh:
Admin,Member,Editor). - Permission (Izin): Apa yang bisa dilakukan jabatan tersebut (contoh:
menghapus user,melihat laporan).
π Cara Kerja Otomatisβ
Hebatnya Filament Shield adalah ia bisa mendeteksi Resource, Halaman (Page), dan Widget Anda secara otomatis.
1. HasRoles Traitβ
Pastikan model User Anda memiliki "kemampuan" untuk mengelola role.
// app/Models/User.php
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles; // Wajib ditambahkan!
}
2. Deteksi Otomatisβ
Setiap kali Anda membuat Resource baru (misalnya ProductResource), Shield akan menyiapkan izin standar:
view_any: Bisa melihat daftar data.create: Bisa menambah data.update: Bisa mengubah data.delete: Bisa menghapus data.
[!TIP] Jalankan perintah
php artisan shield:generate --alluntuk menyinkronkan Resource baru Anda ke dalam database agar muncul di halaman kelola Role.
βοΈ Pengaturan di filament-shield.phpβ
Beberapa pengaturan penting yang perlu Anda tahu:
super_admin: Peran tertinggi yang punya akses ke mana saja.panel_user: Peran dasar bagi siapa saja yang boleh masuk ke dashboard Filament.exclude: Jika ada Resource atau Page yang tidak ingin Anda beri batasan akses, masukkan ke sini.
[!NOTE] Secara default, aplikasi ini menggunakan gaya penulisan PascalCase untuk izin (contoh:
ViewAnyUser), tapi ini bisa diubah di file konfigurasi.