Halo teman-teman semuanya, jika sebelumnya kita sudah membahas tentang Authentication di dalam Laravel Jetstream maka kali ini kita akan mengulas tentang Profile Management di dalam Laravel Jetstream. Fitur Profile Management Laravel Jetstream dapat kita akses melalui menu dropdown di kanan atas setelah kita berhasil melakukan Login.
Laravel Jetstream membuat scaffolds views dan action yang mana memungkinkan user untuk melakukan update data, seperti: nama
, email
, alamat
dan foto profile
.
Views / Pages
Ketika kita menggunakan stack Livewire
di Laravel Jetstream, untuk tampilan profile akan diambil dari file template Blade berikut ini : resources/views/profile/update-profile-information-form.blade.php
. Dan jika kita menggunakan Inertia
maka template yang digunakan akan diambil dari resources/js/Pages/Profile/UpdateProfileInformationForm.vue
.
Di dalam semua template profile kita bisa menampilkan data user yang sudah login dengan objek dan disini memungkinkan kita untuk menambahkan beberapa form atau inputan jika memang dibutuhkan. Jadi kita bisa dengan lebih mudah untuk melakukan kustomisasi.
Actions
Actions
merupakan fitur dari Laravel Jetsream yang digunakan untuk membuat logika dan menerima request yang mana salah satunya untuk melakukan update data profile. Kita bisa melihat action yang digunakan untuk melakukan update profile di dalam class berikut ini :
App\Actions\Fortify\UpdateUserProfileInformation
Di dalam class di atas kita bisa menyesuaikan data profile apa saja yang perlu diupdate dan tidak. Oleh karena itu, penyesuaian apa pun yang ingin kita lakukan pada logika harus dilakukan di class ini. Actions ini menerima data user yang sudah melakukan login dan menerima request input berupa array dari form, termasuk foto profil.
Foto Profile
Secara default Laravel Jetstream memungkin user untuk melakukan update foto profile, kita bisa fungsi yang digunakan untuk melakukan update foto profile di dalam Traits Laravel\Jetstream\HasProfilePhoto
, dimana Traits tersebut akan otomatis terhubung dengan Model User App\Models\User
saat kita melakukan installasi Laravel jetstream. Kita bisa melihatnya di app/Models/User.php
:
use Laravel\Jetstream\HasProfilePhoto;
...
class User extends Authenticatable
{
use HasProfilePhoto;
...
...
}
Dan jika kita buka Traits Laravel\Jetstream\HasProfilePhoto
maka kita akan menemukan banyak function, diantaranya adalah :
-
updateProfilePhoto
-
getProfilePhotoUrlAttribute
-
defaultProfilePhotoUrl
-
profilePhotoDisk
Disini kita disarankan untuk melihat source code yang disediakan, sehingga kita bisa lebih paham secara penuh tentang fitur yang disediakan dan mampu membuat beberapa kustomisasi yang bisa sesuai kebutuhan.
Disable Fitur Foto Profile
Secara default ketika kita menggunakan Laravel Jetstream, maka kita dapat melakukan update foto profile dengan sangat mudah, akan tetapi disini kita juga dapat menon-aktifkan fitur ini jika dirasa tidak dibutuhkan. Kita bisa menon-aktifkan fitur ini di dalam file config/jetstream.php
. Untuk menonaktifkan fitur, cukup beri komentar dari item konfigurasi, kurang lebih seperti berikut ini :
'features' => [
// Features::profilePhotos(),
Features::api(),
Features::teams(),
]
Hapus Akun
Di dalam template profile juga tersedia fitur untuk mengahpus data akun dari user yang sedang login. Ketika user melakukan hapus data akun, maka action yang akan di panggil adalah :
App\Actions\Jetstream\DeleteUser
Kita bisa dengan bebas menyesuaikan logika hapus akun di dalam class ini. DI artikel selanjutnya kita akan membahas tentang Security
yang ada di dalam Laravel Jetstream, seperti Two-Factor-Authentication
, Password Update
, Password Confirmation
dan lain-lain.