Current File : /home/getxxhzo/app.genicards.com/app/Http/Controllers/Auth/VerifyEmailController.php |
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\AffiliateUser;
use App\Models\EmailVerification;
use App\Models\User;
use Illuminate\Auth\Events\Verified;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Laracasts\Flash\Flash;
class VerifyEmailController extends Controller
{
public function __construct()
{
$this->middleware('throttle:6,1')->only('verify', 'resend');
$this->middleware('setLanguage');
}
public function __invoke(Request $request): RedirectResponse
{
/** @var User $user */
$user = User::find($request->route('id'));
if ($user->hasVerifiedEmail()) {
Flash::success(__('messages.placeholder.your_mail_already_verified'));
return redirect(route('login'));
}
if ($user->markEmailAsVerified()) {
$affiliateUser = AffiliateUser::withoutGlobalScope('verifiedUser')
->whereIsVerified(false)
->whereUserId($user->id)
->first();
if ($affiliateUser) {
$affiliateUser->update(['is_verified' => true]);
}
event(new Verified($request->user()));
}
Flash::success(__('messages.placeholder.successfully_verified'));
return redirect(route('login'));
}
/**
@param $token
@return Redirect|RedirectResponse|Application
*/
public function verifyEmail($userId, $token): RedirectResponse
{
$verifiedUser = EmailVerification::where('token', $token)->where('user_id', $userId)->firstOrFail();
if (isset($verifiedUser)) {
$user = User::find($userId);
$user->email = $verifiedUser->email;
$user->save();
$affiliateUser = AffiliateUser::withoutGlobalScope('verifiedUser')
->whereIsVerified(false)
->whereUserId($user->id)
->first();
if ($affiliateUser) {
$affiliateUser->update(['is_verified' => true]);
}
$verifiedUser->delete();
Flash::success(__('Your email has been verified successfully.'));
return redirect(route('login'));
}
}
}