parfum/app/Livewire/Studio/Setting/Password.php

63 lines
1.4 KiB
PHP

<?php
namespace App\Livewire\Studio\Setting;
use App\Livewire\Forms\PasswordForm;
use App\Models\User;
use App\Traits\WithUpdatedData;
use Flux\Flux;
use Illuminate\Support\Facades\Hash;
use Livewire\Attributes\Title;
use Livewire\Component;
#[Title('Kata Sandi')]
class Password extends Component
{
use WithUpdatedData;
public PasswordForm $form;
public function mount(User $user)
{
$this->form->setUser($user);
}
public function update()
{
if (! Hash::check($this->form->current_password, $this->form->user->password)) {
Flux::toast(
heading: 'Gagal',
text: 'Kata sandi yang Anda masukkan tidak sesuai dengan kata sandi saat ini.',
variant: 'danger',
duration: 3000
);
return;
}
auth()->logoutOtherDevices($this->form->current_password);
$this->form->update();
auth()->logout();
session()->invalidate();
session()->regenerateToken();
Flux::toast(
heading: 'Berhasil',
text: 'Kata sandi berhasil diperbarui.',
variant: 'success',
duration: 3000
);
$this->redirectRoute('login', navigate: true);
}
public function render()
{
return view('livewire.studio.setting.password', [
'pageTitle' => 'Kata Sandi',
]);
}
}