Archived
1
0
Fork 0
This repository has been archived on 2026-06-16. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
wow-raid-bingo/app/Http/Livewire/Form/AccountForm.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', 'current_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');
}
}