lms/app/Http/Controllers/Auth/VerifyEmailController.php
Ahmed Darrazi ed003be546
All checks were successful
Build & Push Docker Image / docker (push) Successful in 1m49s
added add user function with verify
2025-12-18 20:38:09 +01:00

46 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Enums\UserType;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Auth\Events\Verified;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Auth;
class VerifyEmailController extends Controller
{
/**
* Mark the user's email address as verified via signed link.
*/
public function __invoke(Request $request): RedirectResponse
{
$user = User::find($request->route('id'));
if (!$user) {
abort(404);
}
if (!hash_equals(sha1($user->getEmailForVerification()), (string) $request->route('hash'))) {
abort(403);
}
if (!$user->hasVerifiedEmail()) {
$user->markEmailAsVerified();
event(new Verified($user));
}
if (Auth::check()) {
$redirect = Auth::user()->role === UserType::STUDENT->value
? route('student.index', ['tab' => 'courses'], absolute: false)
: route('dashboard', absolute: false);
return redirect()->intended($redirect . '?verified=1');
}
return redirect()->route('login')->with('status', __('auth.email_verified_successfully'));
}
}