예제 #1
0
 public function actionSendMailResetPassword()
 {
     if (isset($_POST['ForgotPasswordForm'])) {
         $model = new ForgotPasswordForm();
         $model->attributes = $_POST['ForgotPasswordForm'];
         if ($model->validate()) {
             $modelBarcode = new UserBarcode();
             $modelBarcode->id = UserBarcode::model()->getMaxId() + 1;
             $modelEmailTemplate = EmailTemplate::model()->findEMailTempalte('User Reset Password');
             $modelUser = User::model()->findByAttributes(array('email' => $model->emailReset));
             $modelBarcode->barcode = Yii::app()->extraFunctions->randomString(32);
             if ($modelEmailTemplate !== NULL && $modelUser !== NULL) {
                 $description = $modelEmailTemplate->description;
                 $subject = $modelEmailTemplate->subject;
                 $variables = array('{link}' => CHtml::link(Yii::app()->createAbsoluteUrl('site/resetPassword', array('barcodeId' => $modelBarcode->id)), Yii::app()->createAbsoluteUrl('site/resetPassword', array('barcodeId' => $modelBarcode->id))), '{barcode}' => $modelBarcode->barcode);
                 $final_array = Yii::app()->extraFunctions->emailSendArray($description, $variables);
                 //replace varibles
                 $send_mail_data = array('subject' => $subject, 'firstName' => ucwords($modelUser->first_name), 'content' => $final_array);
                 $message = $this->renderPartial('_emailTemplate', $send_mail_data, true);
                 //call a template view
                 $result = Yii::app()->extraFunctions->sendEmail($modelUser->email, $subject, $message, $modelUser->first_name . ' ' . $modelUser->last_name);
                 //send mail
                 if ($result === TRUE) {
                     $modelBarcode->userid = $modelUser->id;
                     $modelBarcode->start_time = date('Y-m-d H:i:s');
                     $temp_startTime = Yii::app()->extraFunctions->getFormatDate($modelBarcode->start_time);
                     $modelBarcode->end_time = Yii::app()->extraFunctions->getEndTime($temp_startTime, 1);
                     $modelBarcode->action = 'resetPassword';
                     $modelBarcode->save();
                 }
             } else {
                 Yii::app()->user->setFlash('error', Yii::t('backend', 'Your request failed. Please contact administrators.'));
             }
             $this->redirect(array('site/login'));
         } else {
             Yii::app()->user->setFlash('error', Yii::t('backend', 'Your email has not registered in our system.'));
             $this->redirect('login');
         }
     }
 }