示例#1
0
 /**
  * Login function
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function index(Request $request)
 {
     // find user object by username.
     $user = User::find($request->get('username'));
     // Is user exist in storage.
     if ($user == null) {
         $error = 1;
         $error_msg = "Login are incorrect. Please try again!";
         return response()->json(['error' => $error, 'error_msg' => $error_msg]);
     } else {
         // Check password
         if ($user->password == sha1($request->get('password'))) {
             $error = 0;
             // generate session token
             $session = new Session();
             $session->token = md5(microtime() . $_SERVER['REMOTE_ADDR']);
             $session->user_id = $user->id;
             $session->is_expired = 0;
             $session->save();
             //return view('session')->with($session->toArray());
             return response()->json(['error' => $error, 'token' => $session->token]);
         } else {
             $error = 1;
             $error_msg = "Login are incorrect. Please try again!";
             return response()->json(['error' => $error, 'error_msg' => $error_msg]);
         }
     }
     //return view('index')->with($user->toArray());
 }
 public function addSession(SessionRequest $request, Session $session)
 {
     $session->session = $request->get('session');
     $saved = $session->save();
     if ($saved) {
         return redirect()->back()->with('info', 'Session saved succesfully');
     }
     return redirect()->back()->with('info', 'An unknow error occured. Please try again.');
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update(MonthlyReportRequest $request, $id)
 {
     //Find report
     $report = MonthlyReport::find($id);
     //Getting all the information of the form, expect the user id,
     //due to keep the report related with its creator
     $report->fill($request->except('user_id'));
     $report->save();
     //If the student is absent, it is not necessary create the sessions
     if ($report->student_present == true) {
         //##Updating the old sessions
         $sessionsIds = array();
         foreach ($request->input('old', array()) as $id => $sessionData) {
             $session = Session::find($id) ?: new Session();
             $session->fill($sessionData);
             $session->save();
             $sessionsIds[] = $session->id;
         }
         //##Delete the unused sessions
         //Getting all sessions ids
         $sessionsToRemove = array();
         foreach ($report->sessions()->get() as $session) {
             $sessionsToRemove[] = $session->id;
         }
         //The ids that are different from sessionsIds, must be deleted
         $sessionsToRemove = array_diff($sessionsToRemove, $sessionsIds);
         foreach ($sessionsToRemove as $id) {
             Session::find($id)->delete();
         }
         //##Inserting new sessions
         //Creating the new sessions
         $sessionsIds = array();
         foreach ($request->input('new', array()) as $id => $sessionData) {
             $session = new Session();
             $session->fill($sessionData);
             $session->monthly_report_id = $report->id;
             $session->save();
         }
     } else {
         //If the student is absent, delete all recorded sessions
         foreach ($report->sessions()->get() as $session) {
             $session->delete();
         }
     }
     //Sending the user to the monthly report
     return redirect()->route('monthlyreport/index');
 }
 private function recogniseAddress($saidWord, Session $session)
 {
     for ($i = 0, $l = count($this->addressPatterns); $i < $l; $i++) {
         $pattern = $this->addressPatterns[$i];
         if (mb_strpos($saidWord, $pattern) !== false) {
             $session->Location = $saidWord;
             $session->save();
             return (object) ['response' => $this->getResponse('thanks')];
         }
     }
 }