PHP 8.3.30
Preview: LoginController.php Size: 3.58 KB
/home/getspomw/royalsquad.us/app/Http/Controllers/LoginController.php

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use Carbon\Carbon;
use DB;

class LoginController extends Controller
{
    /**
     * Display the login form.
     *
     * @return \Illuminate\View\View
     * This function shows the login form for the admin user.
     */
    public function showLoginForm()
    {
        return view('admin.login');
    }

    /**
     * Handle the login request.
     *
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\RedirectResponse
     * This function processes the login request by validating the credentials
     * and authenticating the user.
     */
    public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required',
        ]);

        $user = User::where('email', $request->email)->first();

        if (!$user) {
            // Email not found
            return back()->withErrors(['email' => 'User with this email does not exist.'])->withInput();
        }

        if (!Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
            return back()->withErrors(['password' => 'Invalid password'])->withInput();
        }

        return redirect()->intended('/admin-dashboard');
    }

    /**
     * Display the forget password form.
     *
     * @return \Illuminate\View\View
     * This function shows the form where users can request a password reset link.
     */
    public function showForgetPasswordForm()
    {
        return view('admin.forgetPassword');
    }

    /**
     * Process the forget password form submission.
     *
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\RedirectResponse
     * This function validates the email, generates a reset token,
     * and sends a password reset email.
     */
    public function submitForgetPasswordForm(Request $request)
    {
        $request->validate([
            'email' => 'required|email|exists:users,email',
        ]);

        $user = User::where('email', $request->email)->first();

        if (!$user) {
            return back()->withErrors(['email' => 'The selected email is invalid.']);
        }

        // Generate a random token for password reset
        $token = Str::random(64);

        // Store or update the password reset record
        DB::table('password_resets')->updateOrInsert(
            ['email' => $request->email],
            [
                'email' => $request->email,
                'token' => $token,
                'created_at' => Carbon::now(),
            ]
        );

        // Send password reset email with the token
        Mail::send('emails.forgetPassword', ['token' => $token], function ($message) use ($request) {
            $message->to($request->email);
            $message->subject('Reset Password Notification');
        });

        return back()->with('message', 'A password reset link has been sent to your email.');
    }

    /**
     * Handle the logout request.
     *
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\RedirectResponse
     * This function logs the user out and invalidates the session.
     */
    public function logout(Request $request)
    {
        Auth::logout();
        $request->session()->invalidate();
        $request->session()->regenerateToken();
        return redirect()->route('login')
            ->withSuccess('You have logged out successfully!');
    }
}

Directory Contents

Dirs: 0 × Files: 12

Name Size Perms Modified Actions
2.85 KB lrw-rw-rw- 2025-09-18 05:50:45
Edit Download
315 B lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
2.74 KB lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
6.83 KB lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
4.65 KB lrw-rw-rw- 2026-02-09 06:01:39
Edit Download
77 B lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
2.80 KB lrw-rw-rw- 2025-09-18 05:51:38
Edit Download
616 B lrw-r--r-- 2026-04-19 15:59:24
Edit Download
3.58 KB lrw-rw-rw- 2025-09-18 05:56:23
Edit Download
1.48 KB lrw-rw-rw- 2025-09-17 06:52:53
Edit Download
8.60 KB lrw-rw-rw- 2025-09-18 05:56:47
Edit Download
8.22 KB lrw-rw-rw- 2026-02-09 07:03:26
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).