<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\Auth;
use App\Providers\RouteServiceProvider;
use Illuminate\Support\Facades\Session;
use Illuminate\Foundation\Auth\VerifiesEmails;
use Illuminate\Support\Facades\Storage;
class VerificationController extends Controller
{
/*
|--------------------------------------------------------------------------
| Email Verification Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling email verification for any
| user that recently registered with the application. Emails may also
| be re-sent if the user didn't receive the original email message.
|
*/
use VerifiesEmails {
VerifiesEmails::verify as parentVerify;
}
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
public function resend_mail()
{
$user = Auth::user();
if (Settings('email_verification') != 1) {
$user->email_verified_at = date('Y-m-d H:m:s');
$user->save();
} else {
$user->sendEmailVerificationNotification();
}
return back();
}
public function verify(Request $request)
{
if ($request->user() && $request->user() != $request->route('id')) {
Auth::logout();
}
if (!$request->user()) {
$userId = $request->route('id');
Auth::loginUsingId($userId, true);
}
if (!UserDomainCheck()) {
Auth::logout();
Toastr::error('Please Login to your domain !', 'Failed');
return back();
}
return $this->parentVerify($request);
}
public function show(Request $request)
{
if (Storage::exists(md5(Auth::user()->email))) {
$email = Storage::get(md5(Auth::user()->email));
$user = User::where('email', trim($email))->first();
$user->sendEmailVerificationNotification();
Storage::delete(md5(Auth::user()->email));
}
if (Session::has('reg_email')) {
Session::forget('reg_email');
}
if ($request->user()->hasVerifiedEmail()) {
if (SaasDomain() == 'main' && Auth::user()->lms_id != 1) {
Toastr::error(trans('common.Operation failed'), trans('common.Failed'));
Auth::logout();
return redirect()->route('login');
}
return redirect('/');
}
return view(theme('auth.verify'));
}
/**
* The user has been verified.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
protected function verified(Request $request)
{
//after verified
if (Auth::check()) {
send_email(Auth::user(), 'New_Student_Reg', [
'time' => Carbon::now()->format('d-M-Y, g:i A'),
'name' => Auth::user()->name
]);
}
}
}