File: /home/armgroup/libs/app/Http/Livewire/Auth/ResetPassword.php
<?php
namespace App\Http\Livewire\Auth;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\User;
use App\Models\Verification;
use App\Rules\Mobile;
use Illuminate\Support\Facades\Hash;
use Livewire\Component;
class ResetPassword extends Component
{
use ConvertEmptyStringsToNull, General, MobileVerification;
public $password;
public $password_confirmation;
public function render()
{
return view('livewire.auth.reset-password');
}
protected function rules()
{
return ['mobile' => ['required', new Mobile, 'exists:users']];
}
public function resetPassword()
{
$this->validate([
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
if ($this->canResetPassword()) {
Verification::whereMobile($this->mobile)->delete();
User::whereMobile($this->mobile)
->update(['password' => Hash::make($this->password)]);
$this->doneMessage();
return redirect()->route('login');
} else {
$this->doneMessage('Error', 'error');
return redirect()->route('reset.password');
}
}
private function canResetPassword()
{
$checkVerification = Verification::whereMobile($this->mobile)
->whereCode($this->code)
->whereApproved(true)
->count();
$chekUsers = User::whereMobile($this->mobile)->count();
return $checkVerification && $chekUsers;
}
}