Exemple #1
0
 public function authenticate()
 {
     //  $email  = Input::get('email');
     $empId = Input::get('empId');
     $password = Input::get('password');
     $mmplant = Input::get('mmplant');
     /*
     $credentials = [
         'email' => '*****@*****.**',
         'password' => 'password'
     ];
     */
     // $remember = $request->has('remember');
     Log::info("into authenticate->[" . $empId . "]");
     $error_message = null;
     $hasAuthened = false;
     $user_empId = null;
     $user_db = null;
     $mmtrendsM = null;
     $user_priority = 0;
     if (Auth::check()) {
         // User is logged in
         Log::info("into check->");
         $hasAuthened = true;
     } else {
         Log::info("into login->");
         // check user in DB?
         $mmtrendsM = DB::table("mmemployee_table")->where('A', $empId)->orderBy('updated_at', 'DESC')->get();
         if (!empty($mmtrendsM)) {
             Log::info($mmtrendsM[0]->A);
             $user_empId = $mmtrendsM[0]->A;
             $user_priority = $mmtrendsM[0]->D0;
             // for LDAP Authen
             // $user_ldap = LDAPAuth::authen($empId, $password);
             // for Test
             $email = '*****@*****.**';
             $user_ldap = ['email' => $email, 'name' => 'Chatchai Pimtun', 'empId' => $empId, 'password' => 'password'];
             // end test
             if (!empty($user_ldap)) {
                 Log::info($user_ldap);
                 //$user_db = User::where('email', $email)
                 $user_db = User::where('empId', $empId)->first();
                 Log::info("user_db->" + sizeof($user_db));
                 $user_key = null;
                 if (empty($user_db)) {
                     //create user
                     $this->create($user_ldap);
                     //$user_db = User::where('email', $email)
                     $user_db = User::where('empId', $empId)->first();
                 }
                 $user_key = $user_db->id;
                 $hasAuthened = true;
                 Auth::loginUsingId($user_key);
                 //set mmplant
                 Auth::user()->mmplant = $mmplant;
                 Session::put('user_mmplant', $mmplant);
                 // set mmemployee_table
                 $user_priority = 255;
                 Session::put('user_empId', $user_empId);
                 Session::put('user_priority', $user_priority);
                 Log::info('mmplant->' . $mmplant);
             } else {
                 $error_message = " Invalid Employee ID or Password";
             }
             Log::info($user_ldap);
         } else {
             $error_message = " Employee is Empty";
         }
         /*
                     $user_name = [
                         'name' => 'imake',
                         'email' => '*****@*****.**',
                         'password' => 'password'
                     ];
                     $user_name=null;
         */
     }
     // You can also specify true as the second parameter to set the "remember me" cookie.
     Session::put('error_message', $error_message);
     //return redirect()->intended('/home');
     if ($hasAuthened) {
         $session_id = Session::getId();
         if (!empty($mmtrendsM)) {
             $userLoginLog = new UserLoginLog();
             $userLoginLog->user_id = $user_empId;
             $current_time = Carbon::now();
             $userLoginLog->user_login_log_id = $session_id;
             $userLoginLog->login_time = $current_time;
             $userLoginLog->date_created = $current_time;
             $userLoginLog->session_id = $session_id;
             $userLoginLog->title_name = $mmtrendsM[0]->B;
             $names = explode("   ", $mmtrendsM[0]->C);
             $userLoginLog->first_name = $names[0];
             $userLoginLog->last_name = $names[1];
             $userLoginLog->save();
         }
         Log::info("into login successs session id->" . $session_id);
         return redirect()->intended('/ais/index');
     } else {
         Log::info("error_message");
         // session()->flash('error_message', " Invalid Employee id or Password .");
         // Session::put('error_message', " Invalid Employee id or Password .");
         //return redirect()->intended('/ais/login');
         return redirect()->intended('/login');
     }
     // check ldap
 }