private function send_forgot_password_email($user_id) { $this->load->library('email'); $this->load->helper('keygen'); $user = new User($user_id); ////////////////////////////////////////////////// // Generate a unique code // ////////////////////////////////////////////////// $code = keygen_generate(64); $check = new PasswordReset(); $check->where('code', $code); $check->get(); while ($check->exists()) { $code = keygen_generate(64); $check = new PasswordReset(); $check->where('code', $code); $check->get(); } $reset = $user->passwordreset; $reset->get(); if ($reset->exists()) { $reset->code = $code; $reset->save(); } else { $reset = new PasswordReset(); $reset->code = $code; $reset->save($user); } $this->user_session->set_account_invalid(); $data['code'] = $reset->code; $data['user'] = array('id' => $user->id, 'firstname' => $user->firstname, 'lastname' => $user->lastname, 'email' => $user->email); $data['content'] = 'password_reset'; $message = $this->load->view('email_master', $data, true); $this->email->from('*****@*****.**', 'OurVigor Support'); $this->email->to($user->email); $this->email->subject('OurVigor Password Reset'); $this->email->message($message); $this->email->send(); }