/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     \Solunes\Master\App\ImageSize::truncate();
     \Solunes\Master\App\ImageFolder::truncate();
     \Solunes\Master\App\TempFile::truncate();
     \Solunes\Master\App\VariableTranslation::truncate();
     \Solunes\Master\App\Variable::truncate();
     \Solunes\Master\App\InboxUser::truncate();
     \Solunes\Master\App\InboxMessage::truncate();
     \Solunes\Master\App\Inbox::truncate();
     \Solunes\Master\App\Notification::truncate();
     \Solunes\Master\App\Activity::truncate();
     DB::table('permission_role')->truncate();
     DB::table('role_user')->truncate();
     \Solunes\Master\App\Role::truncate();
     \Solunes\Master\App\Permission::truncate();
     \App\User::truncate();
     \Solunes\Master\App\EmailTranslation::truncate();
     \Solunes\Master\App\Email::truncate();
     \Solunes\Master\App\IndicatorValue::truncate();
     \Solunes\Master\App\IndicatorGraph::truncate();
     \Solunes\Master\App\IndicatorAlert::truncate();
     \Solunes\Master\App\Indicator::truncate();
     \Solunes\Master\App\FieldOptionTranslation::truncate();
     \Solunes\Master\App\FieldOption::truncate();
     \Solunes\Master\App\FieldConditional::truncate();
     \Solunes\Master\App\FieldExtra::truncate();
     \Solunes\Master\App\FieldTranslation::truncate();
     \Solunes\Master\App\Field::truncate();
     \Solunes\Master\App\Section::truncate();
     \Solunes\Master\App\Filter::truncate();
     \Solunes\Master\App\NodeExtra::truncate();
     \Solunes\Master\App\NodeRequest::truncate();
     \Solunes\Master\App\NodeTranslation::truncate();
     \Solunes\Master\App\Node::truncate();
     \Solunes\Master\App\MenuTranslation::truncate();
     \Solunes\Master\App\Menu::truncate();
     \Solunes\Master\App\PageTranslation::truncate();
     \Solunes\Master\App\Page::truncate();
     \Solunes\Master\App\SiteTranslation::truncate();
     \Solunes\Master\App\Site::truncate();
     \Solunes\Master\App\Language::truncate();
     \App\PasswordReminder::truncate();
 }
 public static function pass_recover_success($email, $redirect, $message, $expire_time = 60)
 {
     $now = new \DateTime();
     $now->add(new \DateInterval('PT1H'));
     $token = md5($email . rand());
     if (\App\PasswordReminder::where('email', $email)->count() > 0) {
         \App\PasswordReminder::where('email', $email)->update(array('token' => $token, 'created_at' => $now));
     } else {
         $password_reminder = new \App\PasswordReminder();
         $password_reminder->email = $email;
         $password_reminder->token = $token;
         $password_reminder->created_at = $now;
         $password_reminder->save();
     }
     Mail::send('master::emails.reminder', ['token' => $token], function ($m) use($email) {
         $m->to($email, 'User')->subject(config()->get('app.name') . ' | ' . trans('master::mail.remind_password_title'));
     });
     return redirect($redirect)->with('message_success', $message);
 }
 public function postUpdate(Request $request)
 {
     $error_messages = array('reminder_password.confirmed' => trans('form.password_match_error'));
     $token = $request->input('token');
     $validator = Validator::make($request->all(), \App\User::$rules_edit_pass, $error_messages);
     if ($validator->passes()) {
         $now = new \DateTime();
         if (\App\PasswordReminder::where('token', $token)->count() > 0 && \App\PasswordReminder::where('token', $token)->first()->created_at < $now) {
             $email = \App\PasswordReminder::where('token', $token)->first()->email;
             \App\User::where('email', $email)->update(array('password' => bcrypt($request->input('password'))));
             \App\PasswordReminder::where('token', $token)->delete();
             return redirect('auth/login')->with('message_success', trans('form.password_reset_success'));
         } else {
             return Login::failed_try($validator, 'password/recover', trans('form.password_reset_error'));
         }
     } else {
         return redirect('password/reset/' . $token)->with('message_error', trans('form.password_not_edited'))->withErrors($validator)->withInput();
     }
 }