public function actionResetPassword($email, $password) { $result = ResetPassword::where('email', $email)->where('status', 1)->first(); if (!is_null($result)) { if (ResetPassword::where('email', $email)->where('status', 1)->update(array('status' => 2)) || User::where('email', $email)->update(array('password' => md5($password)))) { return true; } else { return false; } } else { return false; } }
private function getReset($selectResult) { $pwdreset = new ResetPassword(); $count = 0; while ($list = mysqli_fetch_assoc($selectResult)) { $pwdreset->setResetId($list['id']); $pwdreset->setResetCode($list['reset_code']); $pwdreset->setResetUser($list['user_id']); $pwdreset->setResetDate($list['date']); $pwdreset->setResetRequest($list['requested']); } return $pwdreset; }
/** * Forgot password */ public function actionReset() { $this->layout = '/layouts/form'; $usermodel = new User(); $name = 'message'; $data = $_GET['data']; $data = base64_decode($data); $data = json_decode($data, true); $datacontent = $data['data']; $message_data = explode("|", $data['data']); $message = $message_data[0]; $received_signature = $data['sig']; $private_key = $usermodel->get_private_key_for_public_key($data['pubKey']); $computed_signature = base64_encode(hash_hmac('sha1', $datacontent, $private_key, true)); if ($computed_signature == $received_signature) { $user = User::model()->find("activationkey = ?", array($message)); if (!$user) { throw new CHttpException(403, Yii::t('fshare', 'Invalid path')); } else { $userid = $message_data[1]; if (isset($_POST['ajax']) && $_POST['ajax'] === 'changepass-form') { echo CActiveForm::validate($model); Yii::app()->end(); } $model = new ResetPassword(); // collect user input data if (isset($_POST['ResetPassword'])) { $model->attributes = $_POST['ResetPassword']; // validate user input and redirect to the previous page if valid if ($model->validate()) { $userchange = User::model()->findByPk($userid); $newpass = $userchange->getcryptedpassword($model->password); $activeKey = $usermodel->randomPassword(32); $userchange->activationkey = $activeKey; $userchange->password = $newpass; $userchange->save(false); Yii::app()->user->setFlash('title', Yii::t("fshare", "Change password")); Yii::app()->user->setFlash('msg', "<strong>" . Yii::t("fshare", "Change password success") . "</strong>" . Yii::t("fshare", "<p> Thank you for using our services <br /> <small> Fshare.vn </ small><br /> <small> Return home 10 seconds</ small>")); $this->redirect(array('site/message')); } } //load form $this->render('resetpassword', array('model' => $model)); exit; } } else { throw new CHttpException(403, Yii::t('fshare', 'Invalid path')); //Yii::app()->user->setFlash('title', 'Đường dẫn kích hoạt không hợp lệ'); } $this->render('message'); }