LARAVEL — Membuat Fitur Pengelolaan Roles & Permission dg SPATIE

Sabit Huraira
2 min readMar 3, 2021

--

Update: tulisan ini menggunakan laravel 5.4, namun source code yang saya share pada github menggunakn laravel 8. sehingga ada beberapa perbedaan pada code.

Salah satu package yang dapat digunakan untuk memudahkan pengelolaan roles/permission pada Laravel adalah Spatie Laravel-Permission yang mana dengan package tersebut, bisa dibilang kita tinggal memakai saja apa yang disediakan oleh spatie untuk mengelola roles & permission.

Tulisan ini tidak akan menjelaskan bagaimana cara menggunakan roles & permission pada spatie untuk mengatur suatu hak akses pada aplikasi anda, karena penjelasan tersebut dapat anda baca langsung pada dokumentasi yang telah disediakan oleh Spatie. Pada tulisan ini saya akan membuat tutorial membuat fitur pengelolaan roles & permission dimana fitur terdiri dari:

  • Halaman pengelolaan roles
  • Halaman pengelolaan permission
  • Halaman pengelolaan roles & permission pada seorang user

Berikut tampilan pada hasil akhir tutorial:

Halaman daftar user beserta informasi role & persmission
Halaman Pengelolaan Role & Permission User

Okey, saya akan menjelaskan sedikit langkah untuk melakukan installasi spatie:

  • Install spatie dg perintah : ‘composer require spatie/laravel-permission’
  • Masukkan code berikut pada “app/config/app.php”
'providers' => [     // ...     Spatie\Permission\PermissionServiceProvider::class,];
  • Kemudian masukkan perintah berikut pada command:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider”
  • Lalu jalankan ‘php artisan config:clear’ dan ‘php artisan migrate’

Proses installasi spatie telah selesai. Dapat dilihat terjadi penambahan atau modifikasi file para project, termasuk juga penambahan tabel pada database. Selanjutnya, kita akan membuat fitur pengelolaan roles & permission pada aplikasi.

  1. Tambahkan code berikut pada ‘App/Http/Kernel.php’ agar dapat menggunakan spatie pada routes:
protected $routeMiddleware = [      // ...     'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,     'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,     'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,];

2. Buat 3 Buah Controller yaitu: RoleController (mengelola role), PermissionController (mengelola permission), UserRoleController (mengelola role& permission pada user). Masukkan kode berikut:

3. Buat tampilan dari ketika controller tersebut, tambahkan kode berikut (pada tampilan ini, saya menggunakan vue.js dan multiselect):

FYI, saya menggunakan suatu template tertentu pada tampilan di atas. Lakukan modifikasi CSS untuk memperbaiki tampilan.

4. Definisikan route ketiga controller tersebut:

Route::resource('role','RoleController');Route::resource('permission','PermissionController');Route::resource('user_role','UserRoleController');

Selesai, anda telah dapat melakukan pengelolaan role, permission dan role dari dengan mengakses route tersebut.

Kode lengkap dari tulisan ini dapat juga dilihat di : https://github.com/sabithuraira/belajar_ecommerce

Terima kasih..

--

--

Sabit Huraira
Sabit Huraira

Written by Sabit Huraira

0 Followers

Software Developer, a polyglot programming language

No responses yet