HEX
Server: LiteSpeed
System: Linux sv4.hami.host 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User: armgroup (1008)
PHP: 8.2.32
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, mail, socket_create, socket_create_listen, socket_create_pair, link, dl, openlog, syslog, stream_socket_server, curl_multi_init
Upload Files
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;
    }
}