Sindbad~EG File Manager

Current Path : /home/numerotech/public_html/mcq.urbanedge.co.in/app/controllers/
Upload File :
Current File : //home/numerotech/public_html/mcq.urbanedge.co.in/app/controllers/UserController.php

<?php

class UserController extends BaseController {

	/*
	|--------------------------------------------------------------------------
	| Default Home Controller
	|--------------------------------------------------------------------------
	|
	| You may wish to use controllers instead of, or in addition to, Closure
	| based routes. That's great! Here is an example controller method to
	| get you started. To route to this controller, just add the route:
	|
	|	Route::get('/', 'HomeController@showWelcome');
	|
	*/


    public function Login($session_id,$session_key)
    {

        try {

            $session = Sessions::getSession();
       
            if(isset($session))
            {
                if(Auth::Check())
                {
                  return Redirect::to('/'.$session_id.'/'.$session_key);
                }
                else
                {
                    return View::make('login');
                }
             }
             else
             {
                // return $this->ClosedPage();
                Session::flash('msg', AppMessage::$EndSession);
                return Redirect::to('msg');
             }
             
         } catch (Exception $e) {
             Log::error('UserController - getProfile : '.$e->getMessage());
         }
        
    }

     //mobile number hide by Sridhar On 2022-Apr-13 8 PM
    public function SendOTP()
    {
        $msg   = "";
        $status= "";
        $user_id = 0;
        try {
            $session = Sessions::getSession();
            $email  = Input::get("email");
            
            $email  = isset($email)?trim($email):null;
            // $mobile = Input::get("mobile");

            $user = null;
            if(isset($email))
            {
                if(isset($email) && !empty($email))
                {   
                    // $email = preg_replace('/\s/', '', $email);

                    $email_user = User::where('email',$email)->first();
                }
                // if(isset($mobile) && !empty($mobile))
                // {
                //     $mobile_user = User::where('mobile',$mobile)->first();
                // }
                
                // if(isset($email_user) && isset($mobile_user))
                // {
                //     if($email_user->user_id == $mobile_user->user_id)
                //     {
                //         $user = $email_user;
                //     } 
                //     else
                //     {
                //         $msg = "Email Id and Mobile Number are diffrent accounts";
                //         $status="error";
                //     }
                // }
                if(isset($email_user))
                {
                    $user = $email_user;
                }
                // else if(isset($mobile_user))
                // {
                //     $user = $mobile_user;
                // }

                if(!isset($user))
                {
                 
                    $user = new user();
                    // $user->mobile = $mobile;
                    $user->email = $email;
                    $user->save();
                }

                if(isset($user) && intval($user->user_id) > 0)
                {

                    $user_id = $user->user_id;
                    if(isset($user->otp))
                    {
                        $otp = $user->otp;
                    }
                    else
                    {
                        $otp = Helper::randomPassword();// Helper::GenerateAndSendOTP($mobile);    
                    }
                    $datetime = new Datetime;
                    $otp_expired_at = $datetime->modify("+10 minutes"); 
                    $otp_expired_at_text = $otp_expired_at->format('d/m/Y h:i A');
                    $content  =  $otp." is the OTP for your $session->session_title Login. This OTP is valid until $otp_expired_at_text";


                    ////SMS
                    // if(isset($user->mobile) && !empty($user->mobile))
                    // {
                    //     $requestID   = Helper::GenerateAndSendOTP($user->mobile, $content,$otp);
                    // }

                    //Mail
                    if(isset($user->email) && !empty($user->email))
                    {
                        try {
                        //     $mandrill =  new Mandrill(CustomClass::$Mandrill_Key);
                        //     $html = View::make('emails/otp')->with('u',$user)->with('OTPContent',$content)->render();
                        //     $subject = "$otp-OTP from $session->session_title Login, valid until $otp_expired_at_text";
                        //     $message = array(
                        //                 'html' => $html,
                        //                 'text' => '',
                        //                 'subject' => $subject,
                        //                 'from_email' => $session->from_email_id,
                        //                 'from_name' => $session->from_email_name,
                        //                 'to' => array(
                        //                     array(
                        //                         'email' => $user->email,
                        //                         'name' => '',
                        //                         'type' => 'to'
                        //                     )
                        //                 ),
                        //                 // 'headers' => array('Reply-To' => 'sridharan.r@numerotec.com'),
                        //                 // 'bcc_address' => 'sridharan.r@numerotec.com',
                                     
                        //             );
                        //     $async = true;
                        //     $ip_pool = '';
                        //     $send_at = '';
                        //     $result = $mandrill->messages->send($message, $async, $ip_pool, $send_at);  

                            $subject = "$otp-OTP from $session->session_title Login, valid until $otp_expired_at_text";    
                            $mailContent = array( "u" => $user, "OTPContent" => $content);
                            Mail::send('emails.otp', $mailContent, function($message) use ($session,$user,$subject) {
                                    $message->from($session->from_email_id,$session->from_email_name);
                                    $message->to($user->email);
                                    $message->subject($subject);
                                });
                        } catch (Exception $e) {
                            Log::error('UserController - SendOTP - Mail : '.$e->getMessage());                   
                        }    
                    }

                    $user->otp = $otp;
                    $user->otp_expired_at = $otp_expired_at;
                    $operationStatus = $user->save();
    
                    $msg  ="An OTP has been sent to your email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";

                    // if((isset($user->mobile) && !empty($user->mobile)) && (isset($user->email) && !empty($user->email)))
                    // {
                    //     $msg  ="An OTP has been sent to your mobile and email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
                    // }
                    // elseif(isset($user->email) && !empty($user->email))
                    // {
                    //     $msg  ="An OTP has been sent to your email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
                    // }
                    // elseif(isset($user->mobile) && !empty($user->mobile))
                    // {
                    //     $msg  ="An OTP has been sent to your mobile. It might take upto a minute to reach you. The OTP is valid for 10 mins.";    
                    // }
                    
                    $status="success";
                }

            }
            else
            {
                // $msg = "Please Enter Email Id Or Mobile Number";
                $msg = "Please Enter valid Email Id";
                $status="error";
            }

            
        } catch (Exception $e) {
            Log::error('UserController - SendOTP : '.$e->getMessage());                   
            echo $e->getMessage();
        }
        return Response::json(array('msg'=>$msg,'status'=>$status,'user_id' => $user_id)); 
    }


    // public function SendOTP()
    // {
    //     $msg   = "";
    //     $status= "";
    //     $user_id = 0;
    //     try {
    //         $email  = Input::get("email");
    //         $mobile = Input::get("mobile");

    //         $user = null;
    //         if(isset($email) || isset($mobile))
    //         {
    //             if(isset($email) && !empty($email))
    //             {
    //                 $email_user = User::where('email',$email)->first();
    //             }
    //             if(isset($mobile) && !empty($mobile))
    //             {
    //                 $mobile_user = User::where('mobile',$mobile)->first();
    //             }
                
    //             if(isset($email_user) && isset($mobile_user))
    //             {
    //                 if($email_user->user_id == $mobile_user->user_id)
    //                 {
    //                     $user = $email_user;
    //                 } 
    //                 else
    //                 {
    //                     $msg = "Email Id and Mobile Number are diffrent accounts";
    //                     $status="error";
    //                 }
    //             }
    //             else if(isset($email_user))
    //             {
    //                 $user = $email_user;
    //             }
    //             else if(isset($mobile_user))
    //             {
    //                 $user = $mobile_user;
    //             }

    //             if(!isset($user))
    //             {
    //                 // echo "user not in";
    //                 // exit();
    //                 $user = new user();
    //                 $user->mobile = $mobile;
    //                 $user->email = $email;
    //                 $user->save();
    //             }

    //             if(isset($user) && intval($user->user_id) > 0)
    //             {

    //                 $user_id = $user->user_id;
    //                 if(isset($user->otp))
    //                 {
    //                     $otp = $user->otp;
    //                 }
    //                 else
    //                 {
    //                     $otp = Helper::randomPassword();// Helper::GenerateAndSendOTP($mobile);    
    //                 }
    //                 $datetime = new Datetime;
    //                 $otp_expired_at = $datetime->modify("+10 minutes"); 
    //                 $otp_expired_at_text = $otp_expired_at->format('d/m/Y h:i A');
    //                 $content  =  $otp." is the OTP for your VRSI Poll Login. This OTP is valid until $otp_expired_at_text";


    //                 //SMS
    //                 if(isset($user->mobile) && !empty($user->mobile))
    //                 {
    //                     $requestID   = Helper::GenerateAndSendOTP($user->mobile, $content,$otp);
    //                 }

    //                 //Mail
    //                 if(isset($user->email) && !empty($user->email))
    //                 {
    //                     try {
    //                         $mandrill =  new Mandrill(CustomClass::$Mandrill_Key);
    //                         $html = View::make('emails/otp')->with('u',$user)->with('OTPContent',$content)->render();
    //                         $subject = 'OTP from VRSI Poll Login, valid until '.$otp_expired_at_text;
    //                         $message = array(
    //                                     'html' => $html,
    //                                     'text' => '',
    //                                     'subject' => $subject,
    //                                     'from_email' => 'support@VRSI.in',
    //                                     'from_name' => 'VRSI Poll',
    //                                     'to' => array(
    //                                         array(
    //                                             'email' => $user->email,
    //                                             'name' => '',
    //                                             'type' => 'to'
    //                                         )
    //                                     ),
    //                                     // 'headers' => array('Reply-To' => 'sridharan.r@numerotec.com'),
    //                                     // 'bcc_address' => 'sridharan.r@numerotec.com',
                                     
    //                                 );
    //                         $async = true;
    //                         $ip_pool = '';
    //                         $send_at = '';
    //                         $result = $mandrill->messages->send($message, $async, $ip_pool, $send_at);  

    //                         // $mailContent = array( "u" => $user, "OTPContent" => $content);
    //                         // Mail::send('emails.otp', $mailContent, function($message) use ($email,$otp_expired_at_text) {
    //                         //         $message->to($user->email)->subject();
    //                         //     });
    //                     } catch (Exception $e) {
    //                         Log::error('UserController - SendOTP - Mail : '.$e->getMessage());                   
    //                     }    
    //                 }

    //                 $user->otp = $otp;
    //                 $user->otp_expired_at = $otp_expired_at;
    //                 $operationStatus = $user->save();


    //                 if((isset($user->mobile) && !empty($user->mobile)) && (isset($user->email) && !empty($user->email)))
    //                 {
    //                     $msg  ="An OTP has been sent to your mobile and email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
    //                 }
    //                 elseif(isset($user->email) && !empty($user->email))
    //                 {
    //                     $msg  ="An OTP has been sent to your email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
    //                 }
    //                 elseif(isset($user->mobile) && !empty($user->mobile))
    //                 {
    //                     $msg  ="An OTP has been sent to your mobile. It might take upto a minute to reach you. The OTP is valid for 10 mins.";    
    //                 }
                    
    //                 $status="success";
    //             }

    //         }
    //         else
    //         {
    //             $msg = "Please Enter Email Id Or Mobile Number";
    //             $status="error";
    //         }

            
    //     } catch (Exception $e) {
    //         Log::error('UserController - SendOTP : '.$e->getMessage());                   
    //         echo $e->getMessage();
    //     }
    //     return Response::json(array('msg'=>$msg,'status'=>$status,'user_id' => $user_id)); 
    // }

   

		// public function SendOTP(){          
  //          try
  //           {
  //           $msg   = "";
  //           $status= "";
            
  //        	$mobile = Input::get("mobile");
  //        	$user = User::where("mobile", "=", $mobile)->first();

  //           if(isset($user) && intval($user->user_id) > 0)
  //           {
  //               $otp = Helper::randomPassword();// Helper::GenerateAndSendOTP($mobile);
  //               $smsContent  =  $otp.' is the OTP for your VRSI Poll Login';
  //               $requestID   = Helper::GenerateAndSendOTP($mobile, $smsContent,$otp);
  //               $user->otp = $otp;
  //               // $otp = Helper::GenerateAndSendOTP($mobile);
  //               // $user->otp = $otp;
  //               $datetime = new Datetime;
  //               $user->otp_expired_at =$datetime->modify("+10 minutes"); 
  //               $operationStatus = $user->save();
  //               $msg  ="An SMS with OTP has been sent to your mobile. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
  //               $status="success";

  //           }
  //           else
  //           {
  //               $msg = "Mobile number does not exist.";
  //               $status="error";
  //           }    
             
  //        }catch (Exception $e) {
  //           Log::error('UserController - SendOTP : '.$e->getMessage());                   
  //           echo $e->getMessage();
  //        }

  //        return Response::json(array('msg'=>$msg,'status'=>$status)); 

            
  //   }
   public function VerifyOTP(){

      try
        {  
            $data = "";
            $status="";
            $msg="";        
            
        	$user_id = Input::get("user_id");
            $otp    = Input::get("otp");


              $user = User::find($user_id);
              $datetime =  date("Y-m-d H:i:s");
                    

              if(isset($user) && intval($user->user_id) > 0)
              {
                if($user->otp == $otp)
                {
                    if($datetime <= $user->otp_expired_at)
                    {   
                        
                        $session = Sessions::getSession();
            			if(isset($session))
            			{
            			    $userlog = new UserLog();
                            $userlog->user_id = $user_id;
                            $userlog->session_id = $session->session_id;
                            $userlog->save();
            			}
            			
            			$user->otp = null;
                        $user->save();
                        
                    	Auth::login($user);
                        $status= "success";
                        $msg   = "";
                        
                    }
                    else
                    {
                        $msg   ="OTP has expired.Please generate a new one.";
                        $status="error";
                        $data  ="";
                    }
                }
                else
                {
                     $msg   = "Invalid OTP";
                     $status="error";
                     $data  ="";


                }

              }
              else
              {
                    $msg = "Mobile number does not exist.";
                    $status="error";
                    $data ="";

              }

         }
         catch (Exception $e) {
            Log::error('UserController - VerifyOTP : '.$e->getMessage());                   
            echo $e->getMessage();
         }

         return Response::json(array('msg'=>$msg,'status'=>$status)); 
     }



    public function getProfile($session_id,$session_key)
     {
        try {
            // var_dump(Auth::Check());
            // exit;
            if(Auth::Check())
            {
                $user =User::find(Auth::User()->user_id);
                return View::make('profile')->with('user',$user)->with('session_id',$session_id)->with('session_key',$session_key);
            }
            else
            {
                return Redirect::to('/'.$session_id.'/'.$session_key);
            }
             
         } catch (Exception $e) {
             Log::error('UserController - getProfile : '.$e->getMessage());
         }
     } 


    public function postProfile($session_id,$session_key)
    {
        try {

            if(Auth::Check())
            {
                $user =User::find(Auth::User()->user_id);
                 $user_id =  $user->user_id;   
                

                $rules = array(
                'prefix'         => 'required',
                'full_name'         => 'required',
                // 'mobile'       => 'required|alphaNum|max:15',
                'mobile'       => 'required|alphaNum|max:15|unique:mcq_users,mobile,'.$user->user_id.',user_id,profile_updated_at,NOT_NULL',
                'email'        => 'required|email|unique:mcq_users,email,'.$user->user_id.',user_id,profile_updated_at,NOT_NULL',
                'city'         => 'required',   
                'state'        => 'required',
                // 'is_non_exam_category'  => 'required'
    //          'dob'          => 'required|date_format:d/m/Y',
    //          'is_pg_student'        => 'required',
                );
                      
                $validator = Validator::make(Input::all(), $rules);
                // var_dump($validator->fails());
                // exit;
                      
                if ($validator->fails())
                {
                    // var_dump($validator->errors());
                    // exit();
                    // return Redirect::to('profile/'.Helper::encrypt($user->user_id))->withInput()->withErrors($validator->errors());
                    return Redirect::to('profile'.'/'.$session_id.'/'.$session_key)->withInput()->withErrors($validator->errors());
                }
                else
                {
                    $user->prefix = Input::get('prefix');
                    $user->full_name = Input::get('full_name');
                    $user->email = Input::get('email');
                    $user->mobile = Input::get('mobile');
                    $user->city = Input::get('city');
                    $user->state = Input::get('state');
                    $user->affiliation = Input::get('affiliation');
                    $user->profile_updated_at = date('Y-m-d H:i:s');
                    $user->save();
                    
                    // $user_courses= new MCQUsersCourses;
                    // $user_courses->is_non_exam_category =  Input::get('is_non_exam_category');
                    // $user_courses->user_id    =  $user_id;
                    // $user_courses->created_at =  date('Y-m-d H:i:s');
                    // $user_courses->save();

                    //delete incompleted duplicate email and mobile
                    User::where('email',$user->email)->whereNull('profile_updated_at')->delete();
                    User::where('mobile',$user->mobile)->whereNull('profile_updated_at')->delete();
                    
                    return Redirect::to('/'.$session_id.'/'.$session_key);
                }
            }
            else
            {
                $msg = "Your session has expired. Please log-in again.<a href=". url('/login') ." >Click here to go to Login</a>";
                return Redirect::to('/'.$session_id.'/'.$session_key)->wiht('msgError'.$msg);
            }
             
         } catch (Exception $e) {
             Log::error('UserController - getProfile : '.$e->getMessage());
         }
    } 

     public function Logout($session_id,$session_key)
     {
     	
     	Auth::logout();
        return Redirect::to('/login/'.$session_id.'/'.$session_key);
     }
     
     // Evaluator login and new registration function added by ganesan
     public function EvaluatorLogin($session_id,$session_key)
    {

        try {
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first();
            if(isset($session))
            {
                 return View::make('evaluators.evaluator_login')->with('session_key' , $session_key)->with('session_id',$session_id);
             }
             else
             {
                // return $this->ClosedPage();
                Session::flash('msg', AppMessage::$EndSession);
                return Redirect::to('msg');
             }
             
         } catch (Exception $e) {
             Log::error('UserController - getProfile : '.$e->getMessage());
         }
        
    }
    public function PostEvaluatorLogin($session_id,$session_key)
    {

        try {
            $email   = Input::get("email");
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first(); 
            if(isset($session))
            {
                 $email_user = Evaluator::where('email',$email)->first();
                 if(isset($email_user))
                 {
                     return "<h4 style='color:red;'> Email id  registered.</h4>";   
                 }
                 else
                 {
                   return "<h4 style='color:red;'> Email id not registered.</h4>";   
                 }
             }
             else
             {
                // return $this->ClosedPage();
                Session::flash('msg', AppMessage::$EndSession);
                return Redirect::to('msg');
             }
             
         } catch (Exception $e) {
             Log::error('UserController - getProfile : '.$e->getMessage());
         }
        
    }  // post function end
    
    // sent otp function start
     public function EvaluatorSendOTP()
    { 
        
        $msg   = "";
        $status= "";
        $user_id = 0;
        try {
            $full_name      = Input::get("full_name");
            $email          = Input::get("email");
            $session_id     = Input::get("session_id");
            $session_key    = Input::get("session_key");
            
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first(); 
            
            
            $email  = isset($email)?trim($email):null;
            $user = null;
            
            if(isset($email))
            {
                if(isset($email) && !empty($email))
                {   
                    // $email = preg_replace('/\s/', '', $email);
                    $user = Evaluator::where('email',$email)->first();
                }
                if(!isset($user))
                {
                    $user = new Evaluator();
                    $user->full_name = $full_name;
                    $user->email = $email;
                    $user->save();
                }

                if(isset($user) && intval($user->evaluator_id) > 0)
                {

                    $evaluator_id = $user->evaluator_id;
                    if(isset($user->otp))
                    {
                        $otp = $user->otp;
                    }
                    else
                    {
                        $otp = Helper::randomPassword();// Helper::GenerateAndSendOTP($mobile);    
                    }
                    $datetime = new Datetime;
                    $otp_expired_at = $datetime->modify("+10 minutes"); 
                    $otp_expired_at_text = $otp_expired_at->format('d/m/Y h:i A');
                    $content  =  $otp." is the OTP for your $session->session_title Login. This OTP is valid until $otp_expired_at_text";

                    //Mail
                    if(isset($user->email) && !empty($user->email))
                    {
                        try {
                            $subject = "$otp-OTP from $session->session_title Login, valid until $otp_expired_at_text";    
                            $mailContent = array( "u" => $user, "OTPContent" => $content);
                            Mail::send('emails.otp', $mailContent, function($message) use ($session,$user,$subject) {
                                    $message->from($session->from_email_id,$session->from_email_name);
                                    $message->to($user->email);
                                    $message->subject($subject);
                                });
                        } catch (Exception $e) {
                            Log::error('UserController - SendOTP - Mail : '.$e->getMessage());                   
                        }    
                    }

                    $user->otp = $otp;
                    $user->otp_expired_at = $otp_expired_at;
                    $operationStatus = $user->save();
    
                    $msg  ="An OTP has been sent to your email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
                    $status="success";
                }

            }
            else
            {
                // $msg = "Please Enter Email Id Or Mobile Number";
                $msg = "Please Enter valid Email Id";
                $status="error";
            }

            
        } catch (Exception $e) {
            Log::error('UserController - EvaluatorSendOTP : '.$e->getMessage());                   
            echo $e->getMessage();
        }
        return Response::json(array('msg'=>$msg,'status'=>$status,'user_id' => $evaluator_id)); 
    }
    
    public function EvaluatorVerifyOTP(){

      try
        {  
            $data = "";
            $status="";
            $msg="";        
            
        	$user_id = Input::get("hdnuserId");
            $otp    = Input::get("otp");
            $session_id     = Input::get("session_id");
            $session_key    = Input::get("session_key");
            
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first(); 
            
            $user = Evaluator::find($user_id);
            $datetime =  date("Y-m-d H:i:s");
                    

              if(isset($user) && intval($user->evaluator_id) > 0)
              {
                if($user->otp == $otp)
                {
                    if($datetime <= $user->otp_expired_at)
                    {   
                        
            			$user->otp = null;
                        $user->save();
                        
                        
                        $data =  array('evaluator_id' => $user->evaluator_id, 'full_name'=>$user->full_name);
                    	Session::put('Evaluator', $data);
                        $status= "success";
                        $url = url('viva_marks/MjA=');
                        $msg   = "Login Successfully.Please redirect the page..";
                        
                    }
                    else
                    {
                        $msg   ="OTP has expired.Please generate a new one.";
                        $status="error";
                        $data  ="";
                    }
                }
                else
                {
                     $msg   = "Invalid OTP";
                     $status="error";
                     $data  ="";
                }

              }
              else
              {
                    $msg = "Error!";
                    $status="error";
                    $data ="";

              }

         }
         catch (Exception $e) {
            Log::error('UserController - VerifyOTP : '.$e->getMessage());                   
            echo $e->getMessage();
         }

         return Response::json(array('msg'=>$msg,'status'=>$status,'url'=>$url)); 
     }
    
    // send otp function end
    
    
     // Evaluator login and new registration function added by ganesan
     public function WorkshopLogin($session_id,$session_key)
    {

        try {
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first();
            if(isset($session))
            {
                 return View::make('workshop.workshop_login')->with('session_key' , $session_key)->with('session_id',$session_id);
             }
             else
             {
                // return $this->ClosedPage();
                Session::flash('msg', AppMessage::$EndSession);
                return Redirect::to('msg');
             }
             
         } catch (Exception $e) {
             Log::error('UserController - WorkshopLogin : '.$e->getMessage());
         }
        
    }
    public function PostWorkshopLogin($session_id,$session_key)
    {

        try {
            $email   = Input::get("email");
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first(); 
            if(isset($session))
            {
                 $email_user = Workshop::where('email',$email)->first();
                 if(isset($email_user))
                 {
                     return "<h4 style='color:red;'> Email id  registered.</h4>";   
                 }
                 else
                 {
                   return "<h4 style='color:red;'> Email id not registered.</h4>";   
                 }
             }
             else
             {
                // return $this->ClosedPage();
                Session::flash('msg', AppMessage::$EndSession);
                return Redirect::to('msg');
             }
             
         } catch (Exception $e) {
             Log::error('UserController - getProfile : '.$e->getMessage());
         }
        
    }  // post function end
    
    // sent otp function start
     public function WorkshopSendOTP()
    { 
        
        $msg   = "";
        $status= "";
        $user_id = 0;
        try {
            $full_name      = Input::get("full_name");
            $email          = Input::get("email");
            $session_id     = Input::get("session_id");
            $session_key    = Input::get("session_key");
            
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first(); 
            
            
            $email  = isset($email)?trim($email):null;
            $user = null;
            
            if(isset($email))
            {
                if(isset($email) && !empty($email))
                {   
                    // $email = preg_replace('/\s/', '', $email);
                    $user = Workshop::where('email',$email)->first();
                }
                if(!isset($user))
                {
                    $user = new Workshop();
                    $user->full_name = $full_name;
                    $user->email = $email;
                    $user->save();
                }

                if(isset($user) && intval($user->evaluator_id) > 0)
                {

                    $evaluator_id = $user->evaluator_id;
                    if(isset($user->otp))
                    {
                        $otp = $user->otp;
                    }
                    else
                    {
                        $otp = Helper::randomPassword();// Helper::GenerateAndSendOTP($mobile);    
                    }
                    $datetime = new Datetime;
                    $otp_expired_at = $datetime->modify("+10 minutes"); 
                    $otp_expired_at_text = $otp_expired_at->format('d/m/Y h:i A');
                    $content  =  $otp." is the OTP for your $session->session_title Login. This OTP is valid until $otp_expired_at_text";

                    //Mail
                    if(isset($user->email) && !empty($user->email))
                    {
                        try {
                            $subject = "$otp-OTP from $session->session_title Login, valid until $otp_expired_at_text";    
                            $mailContent = array( "u" => $user, "OTPContent" => $content);
                            Mail::send('emails.otp', $mailContent, function($message) use ($session,$user,$subject) {
                                    $message->from($session->from_email_id,$session->from_email_name);
                                    $message->to($user->email);
                                    $message->subject($subject);
                                });
                        } catch (Exception $e) {
                            Log::error('UserController - SendOTP - Mail : '.$e->getMessage());                   
                        }    
                    }

                    $user->otp = $otp;
                    $user->otp_expired_at = $otp_expired_at;
                    $operationStatus = $user->save();
    
                    $msg  ="An OTP has been sent to your email. It might take upto a minute to reach you. The OTP is valid for 10 mins.";
                    $status="success";
                }

            }
            else
            {
                // $msg = "Please Enter Email Id Or Mobile Number";
                $msg = "Please Enter valid Email Id";
                $status="error";
            }

            
        } catch (Exception $e) {
            Log::error('UserController - EvaluatorSendOTP : '.$e->getMessage());                   
            echo $e->getMessage();
        }
        return Response::json(array('msg'=>$msg,'status'=>$status,'user_id' => $evaluator_id)); 
    }
    
    public function WorkshopVerifyOTP(){

      try
        {  
            $data = "";
            $status="";
            $msg="";        
            
        	$user_id = Input::get("hdnuserId");
            $otp    = Input::get("otp");
            $session_id     = Input::get("session_id");
            $session_key    = Input::get("session_key");
            
            $session = Sessions::where('session_key',$session_key)->where('session_id',$session_id)->first(); 
            
            $user = Workshop::find($user_id);
            $datetime =  date("Y-m-d H:i:s");
                    

              if(isset($user) && intval($user->evaluator_id) > 0)
              {
                if($user->otp == $otp)
                {
                    if($datetime <= $user->otp_expired_at)
                    {   
                        
            			$user->otp = null;
                        $user->save();
                        
                        
                        $data =  array('evaluator_id' => $user->evaluator_id, 'full_name'=>$user->full_name);
                    	Session::put('Workshop', $data);
                        $status= "success";
                        $url = url('workshop_marks/MjA=');
                        $msg   = "Login Successfully.Please redirect the page..";
                        
                    }
                    else
                    {
                        $msg   ="OTP has expired.Please generate a new one.";
                        $status="error";
                        $data  ="";
                    }
                }
                else
                {
                     $msg   = "Invalid OTP";
                     $status="error";
                     $data  ="";
                }

              }
              else
              {
                    $msg = "Error!";
                    $status="error";
                    $data ="";

              }

         }
         catch (Exception $e) {
            Log::error('UserController - WorkshopVerifyOTP : '.$e->getMessage());                   
            echo $e->getMessage();
         }

         return Response::json(array('msg'=>$msg,'status'=>$status,'url'=>$url)); 
     }

}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists