public function forgotPassword($email = "", $returnLinkPath = "") { if (!is_string($email)) { return Error::set(lang('Error', 'stringParameter', 'email')); } if (!is_string($returnLinkPath)) { $returnLinkPath = ''; } // ------------------------------------------------------------------------------ // CONFIG/USER.PHP AYARLARI // Config/User.php dosyasında belirtilmiş ayarlar alınıyor. // ------------------------------------------------------------------------------ $userConfig = $this->config; $usernameColumn = $userConfig['usernameColumn']; $passwordColumn = $userConfig['passwordColumn']; $emailColumn = $userConfig['emailColumn']; $tableName = $userConfig['tableName']; // ------------------------------------------------------------------------------ $db = uselib('DB'); if (!empty($emailColumn)) { $db->where($emailColumn . ' =', $email); } else { $db->where($usernameColumn . ' =', $email); } $row = $db->get($tableName)->row(); $result = ""; if (isset($row->{$usernameColumn})) { if (!isUrl($returnLinkPath)) { $returnLinkPath = siteUrl($returnLinkPath); } $newPassword = Encode::create(10); $encodePassword = Encode::super($newPassword); $templateData = array('usernameColumn' => $row->{$usernameColumn}, 'newPassword' => $newPassword, 'returnLinkPath' => $returnLinkPath); $message = Import::template('UserEmail/ForgotPassword', $templateData, true); $sendEmail = uselib('Email'); $sendEmail->receiver($email, $email); $sendEmail->subject(lang('User', 'newYourPassword')); $sendEmail->content($message); if ($sendEmail->send()) { if (!empty($emailColumn)) { $db->where($emailColumn . ' =', $email); } else { $db->where($usernameColumn . ' =', $email); } $db->update($tableName, array($passwordColumn => $encodePassword)); $this->error = true; $this->success = lang('User', 'forgotPasswordSuccess'); return false; } else { $this->success = false; $this->error = lang('User', 'emailError'); return Error::set($this->error); } } else { $this->success = false; $this->error = lang('User', 'forgotPasswordError'); return Error::set($this->error); } }