Tutorial Inertia Roles & Permissions - #7 - Membuat Share Data Global Inertia

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan belajar membuat sebuah data yang dapat diakses di semua halaman menggunakan inertia.

Rafi Taufiqurrahman
Dipublish 13/07/2024

Pendahuluan

Untuk mengirimkan data secara global atau data yang dapat dipanggil di semua halaman, inertia.js memiliki fitur yang bernama share data. Share data ini kita dapatkan ketika kita melakukan installasi laravel breeze, untuk menambahkan data yang dapat dipanggil secara global kita bisa menambahkan-nya didalam middleware inertia.

Menambahkan Share Data Inertia

Silahkan teman - teman buka file yang bernama HandleInertiaRequest.php yang terletak di folder app/Http/Middleware, kemudian tambahkan kode berikut ini :

HandleInertiaRequest.php
<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;
use Inertia\Middleware;

class HandleInertiaRequests extends Middleware
{
    /**
     * The root template that is loaded on the first page visit.
     *
     * @var string
     */
    protected $rootView = 'app';

    /**
     * Determine the current asset version.
     */
    public function version(Request $request): string|null
    {
        return parent::version($request);
    }

    /**
     * Define the props that are shared by default.
     *
     * @return array<string, mixed>
     */
    public function share(Request $request): array
    {
        return [
            ...parent::share($request),
            'auth' => [
                'user' => $request->user(),
                'permissions' => $request->user() ? $request->user()->getUserPermissions() : [],
                'super' => $request->user() ? $request->user()->isSuperAdmin() : false,
            ],
        ];
    }
}

Pada kode diatas pada method share kita menambahkan beberapa key didalam array auth, yang pertama ada key permissions.

HandleInertiaRequest.php
'permissions' => $request->user() ? $request->user()->getUserPermissions() : [],

Pada kode diatas, key permissions kita lakukan pengecekan apakah user sedang login ? jika true maka kita tampilkan data permissions yang dimiliki oleh user menggunakan method getUserPermissions yang telah kita buat sebelumnya di model users, jika false maka kita akan tampilkan empty array.

Selanjutnya kita juga menambahkan key super, key super ini kita gunakan untuk melakukan pengecekan apakah user memiliki role super-admin.

HandleInertiaRequest.php
'super' => $request->user() ? $request->user()->isSuperAdmin() : false,

Penutup

Pada artikel kali ini kita telah berhasil membuat share data yang bersifat global di inertia, berikutnya kita akan lanjutkan untuk membuat beberapa components yang nantinya akan kita gunakan pada project kita.

Artikel Lainnya

Beberapa artikel rekomendasi lainnya untuk menambah pengetahuan.

1
Tutorial Laravel Livewire - #4 - Membuat Schema Database Dengan Laravel
Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah schema database yang nantinya akan kita gunakan pada study case kali ini dan kita akan memanfaatkan model dan migration dari laravel.
2
Tutorial Laravel Livewire - #2 - Installasi Project Laravel
Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan mulai melakukan installasi project laravel kita dari awal menggunakan composer.
3
Tutorial Inertia Roles & Permissions - #5 - Membuat Model, Migration, Faker Dan Seeder Laravel
Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah model, migration, faker dan seeder yang akan kita gunakan di dalam project kita.
4
Tutorial Laravel Livewire - #10 - Membuat Module POS Dengan Livewire
Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah module pos dengan livewire.
5
Tutorial React Native Auth - #7 - Membuat Profile Screen React Native
Artikel ini merupakan series dari Tutorial Authentication Dengan React Native dan Laravel Sanctum, disini kita akan membuat sebuah profile screen pada project kita
6
Tutorial Inertia Roles & Permissions - #9 - Membuat Utils Permissions Dengan Inertia React
Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan belajar membuat sebuah utils untuk menghandle permissions yang kita miliki.

JurnalKoding

Mulai asah skill dengan berbagai macam teknologi - teknologi terbaru seperti Laravel, React, Vue, Inertia, Tailwind CSS, dan masih banyak lagi.

© 2025 JurnalKoding, Inc. All rights reserved.