77 lines
1.5 KiB
PHP
77 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Livewire\Form;
|
|
|
|
use App\Models\Admin;
|
|
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Validation\Rules\Password;
|
|
use Illuminate\Http\Request;
|
|
|
|
use App\Http\Livewire\Traits\Alert;
|
|
|
|
use Livewire\Component;
|
|
|
|
class AccountForm extends Component
|
|
{
|
|
use Alert;
|
|
|
|
public $username;
|
|
|
|
public $password;
|
|
|
|
public $password_current;
|
|
|
|
public $password_confirmation;
|
|
|
|
public Admin $record;
|
|
|
|
protected $validationAttributes = [
|
|
'password_current' => 'current password',
|
|
'password' => 'new password',
|
|
];
|
|
|
|
public function mount(Request $request)
|
|
{
|
|
$this->record = $request->user();
|
|
|
|
$this->username = $this->record->username;
|
|
}
|
|
|
|
/**
|
|
* Validation rules
|
|
*/
|
|
protected function rules()
|
|
{
|
|
return [
|
|
'password_current' => ['required', 'password'],
|
|
'password' => [Password::min(8)->letters()->mixedCase()->numbers(), 'confirmed']
|
|
];
|
|
}
|
|
|
|
public function updated($property, $value)
|
|
{
|
|
if ($property == 'password_confirmation') {
|
|
$property = 'password';
|
|
}
|
|
|
|
$this->validateOnly($property);
|
|
}
|
|
|
|
public function submit()
|
|
{
|
|
$this->validate();
|
|
|
|
$this->record->password = Hash::make($this->password);
|
|
$this->record->save();
|
|
|
|
return redirect()->route('admin')
|
|
->with('info', __('Password was successfully updated.'));
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('form.account')
|
|
->layout('layouts.admin');
|
|
}
|
|
}
|