0% menganggap dokumen ini bermanfaat (0 suara)
840 tayangan12 halaman

Membuat Multi Level User Dengan Spatie Laravel

Tutorial ini menjelaskan cara menginstalasi dan menggunakan Spatie Laravel Permission untuk membuat multi level user. Langkah-langkahnya meliputi instalasi library, pembuatan role, menetapkan role untuk user, penggunaan directive blade dan middleware untuk membatasi akses berdasarkan role.

Diunggah oleh

Rizky Mocin
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
840 tayangan12 halaman

Membuat Multi Level User Dengan Spatie Laravel

Tutorial ini menjelaskan cara menginstalasi dan menggunakan Spatie Laravel Permission untuk membuat multi level user. Langkah-langkahnya meliputi instalasi library, pembuatan role, menetapkan role untuk user, penggunaan directive blade dan middleware untuk membatasi akses berdasarkan role.

Diunggah oleh

Rizky Mocin
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 12

Membuat multi level user dengan Spatie Laravel

A. INSTALASI
1. Instal project Laravel dengan perintah :

2. Laravel akan menginstal file-file yang dibutuhkan

3. Tunggu hingga Laravel selesai menginstal project


4. Buka project yang telah kita buat (praktek_level) di text editor. (praktek kali ini menggunakan Visual Studio
Code)

5. Jalankan server Laravel dengan perintah php artisan serve

6. Ketikkan di URL browser anda : localhost:8000, maka anda akan mendapatkan tampilan seperti berikut ini
Jika di browser anda muncul tampilan seperti ini, berarti Laravel telah berhasil terinstal.

7. Buka file .env yang ada di folder project kita, lakukan setingan untuk database seperti dibawah ini :

8. Lakukan konfigurasi defaultStringLength dengan cara :


- Buka file app/Providers/AppServiceProvider.php
- Lakukan beberapa tambahan seperti berikut ini:
- Tambahkan trait Illuminate\Support\Facades\Schema
- Pada method boot(), tambahkan baris Schema::defaultStringLength(191)

9. Instal Authentication (Login, Register) dengan perintah :


php artisan make:auth

setelah menjalankan perintah diatas, maka akan muncul menu LOGIN dan REGISTER, itu berarti authentication
telah berhasil di install
10. Setelah itu, download library spatie/laravel dengan menggunakan composer. Perintahnya adalah sebagai
berikut:
composer require spatie/laravel-permission

11. Tunggu hingga instalasi selesai. setelah itu, akan muncul tampilan seperti berikut ini:

12. Selanjutnya, kita harus mendownload file migration dari spatie itu sendiri. Perintahnya sebagai berikut:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
13. Selanjutnya, jalankan perintah migrate agar kita mendapatkan struktur table yang kita butuhkan.
php artisan migrate

14. Setelah perintah menjalankan perintah diatas, kita akan memiliki table seperti dibawah ini

15. Selanjutnya, tambahkan Trait HasRole di model User, caranya sebagai berikut:
- Buka file app\User.php
- Tambahkan trait HasRoles pada model user tersebut

16. Dengan demikian, kita sudah dapat menggunakan Laravel permission untuk membuat role/level user,
permission, dsb.
B. PENGGUNAAN
1. Pembuatan Role/Level.
Untuk membuat role/level user, kita dapat menjalankan perintah berikut ini pada CLI/Terminal:
php artisan permission:create-role nama-role

pada contoh ini kita akan membuat 2 role/level yaitu admin dan tamu.
Berikut ini adalah perintahnya :

2. Menunjuk user sebagai salah satu role.


o Pada contoh ini kita akan melakukan registrasi salah satu user.

o Setelah melakukan registrasi, kita akan otomatis login ke dalam aplikasi kita

o Kita akan jadikan user ‘Eko’ Sebagai admin. Pada contoh ini kita buat satu controller yang dapat
melakukan ‘assign role’ kepada user. Controller yang akan kita buat adalah RoleController.
o Buka file app\Controller\RoleController.php, kemudian tambahkan skrip berikut ini :

Keterangan :
 auth()->user() adalah method untuk mendapatkan data user yang login saat ini.
 Method user()->assignRole(‘admin’) digunakan untuk memberikan level admin kepada user
yang sedang login saat ini.
o Selanjutnya, kita buat route yang akan mengakses controller RoleController ini. Buka file
routes\web.php

o Sekarang kita buka localhost:xxxx/admin-role di web browser kita.

Jika muncul tampilan seperti diatas, itu berarti kita sudah berhasil memberikan role ‘admin’ kepada
user ‘Eko’.
Untuk membuktikannya, silakan buka PHPMyAdmin.

Nilai 1 pada field role_id adalah role admin, sedangkan nilai 1 pada model_id adalah user ‘Eko’.
o Dengan demikian, user ‘Eko’ telah mendapatkan role sebagai admin.
3. Menggunakan directive blade
Spatie/Laravel-permission menyediakan blade directive yang dapat kita gunakan pada template blade kita.
Contoh : kita akan menambah menu pada tampilan home yang hanya akan muncul pada role admin.
Silakan buka file resources\views\layouts\app.blade.php dan tambahkan baris seperti dibawah ini.

o Dengan demikian, pada tampilah home, kita akan mendapatkan menu Tambah User. Silakan buka
localhost:xxxx/home pada web browser.

o Karena menu Tambah User tersebut hanya ada pada role ‘admin’, dalam hal ini user ‘Eko’, maka
ketika kita melakukan login dengan user lain yang bukan role ‘admin’, maka menu tersebut tidak
akan muncul

o Demikian adalah cara kita menggunakan blade directive dari spatie.

4. Menggunakan middleware pada route


Kita bisa mengatur route yang hanya bisa diakses oleh salah satu role, misalnya role admin. Maka dari itu
kita dapat menggunakan middleware yang telah disediakan oleh spatie/Laravel-permission. Adapun caranya
adalah sebagai berikut :
o Buka file app\Http\Kernel.php
o Cari array $routeMiddleware, kemudian tambahkan beberapa baris seperti berikut ini :
o Untuk menggunakan middleware ini, kita bisa membuat sebuah route pada file routes\web.php
seperti berikut ini.

o Buatlah satu method baru pada controller RoleController (app\Controller\RoleController.php)


yaitu method test seperti berikut ini:
o pada contoh diatas, kita membuat route /tes-role yang hanya bisa diakses oleh admin. Misal kita
memiliki sebuah user yaitu ‘Eko’. ‘Eko’ memiliki role ‘admin’, maka hanya eko yang dapat mengakses
url \tes-role

o route /tes-role ini hanya bisa diakses oleh role admin, dalam hal ini user ‘Eko’. Jika route /tes-role
ini coba diakses oleh user yang bukan admin, maka akan muncul pesan kesalahan.
###

Demikian Tutorial Spatie/Laravel-permission ini. Semoga bermanfaat.


Wassalamualaikum Warahmatullahi Wabarakatuh. 😊

Anda mungkin juga menyukai