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 Rest API - #2 - Installasi Laravel Sanctum
Artikel ini merupakan series dari Tutorial Authentication Dengan Laravel Sanctum dan Unit Testing, disini kita akan mulai melakukan installasi laravel sanctum dan implementasi api token pada model user.
2
Tutorial Inertia Roles & Permissions - #1 - Project Overview
Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan bahasa teknologi apa saja yang kita gunakan dan scope dari project yang akan kita bangun.
3
Tutorial Inertia Roles & Permissions - #11 - Membuat Module Post Dengan Inertia React
Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module post dengan inertia react.
4
Tutorial Inertia Roles & Permissions - #13 - Membuat Module Role Dengan Inertia React
Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module role dengan inertia react.
5
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.
6
Tutorial Laravel Livewire - #1 - Project Overview
Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan bahasa teknologi apa saja yang kita gunakan dan scope dari project yang akan kita bangun.

JurnalKoding

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

© 2024 JurnalKoding, Inc. All rights reserved.