Пример #1
0
 public function indexAction()
 {
     //Extracting RedirectURL
     $redirectUrl = $this->getBag->get('redirect');
     //base64 encoded
     if (strlen($redirectUrl) > 0) {
         $redirectUrl = base64_decode($redirectUrl);
     } elseif ($this->getBag->has('returnurl') && $this->getBag->get('returnurl') != '') {
         $redirectUrl = urldecode($this->getBag->get('returnurl'));
     } else {
         $redirectUrl = $this->registry->conf['rooturl'];
     }
     $error = $warning = $formData = $success = array();
     if ($this->postBag->has('fsubmit')) {
         $formData = $this->postBag->all();
         if ($this->submitValidate($formData, $error)) {
             $myUser = \Model\User::getByEmail($formData['femail']);
             if ($myUser->id > 0) {
                 //xu ly de tai activatedcode cho viec change password
                 $code = $myUser->id . $myUser->email . rand(1000, 9999) . time() . \Litpi\ViephpHashing::$secretString;
                 $activatedCode = md5($code);
                 $myUser->activatedcode = $activatedCode;
                 if ($myUser->updateData(array(), $error)) {
                     $this->registry->session->set('forgotpassSpam', time());
                     //tien hanh goi email
                     //send mail to user
                     $this->registry->smarty->assign(array('activatedCode' => $activatedCode, 'myUser' => $myUser));
                     $mailContents = $this->registry->smarty->fetch($this->registry->smartyMail . 'forgotpass/user.tpl');
                     $sender = new \Litpi\SendMail($this->registry, $myUser->email, $myUser->fullname, 'Reset Password Information from ' . $this->registry->conf['host'], $mailContents, '*****@*****.**', 'Your Name');
                     if ($sender->send()) {
                         $success[] = 'Check your email for reset password process.';
                     } else {
                         $error[] = 'Error while sending your email.';
                     }
                 }
                 //end updateData()
             }
         }
     }
     //end submit
     $this->registry->session->set('forgotpassToken', \Litpi\Helper::getSecurityToken());
     $this->registry->smarty->assign(array('formData' => $formData, 'error' => $error, 'success' => $success, 'warning' => $warning, 'redirectUrl' => $redirectUrl, 'redirectUrlEncode' => base64_encode($redirectUrl)));
     $contents = $this->registry->smarty->fetch($this->registry->smartyController . 'index.tpl');
     $this->registry->response->setContent($contents);
 }
Пример #2
0
 public function resetpassAction()
 {
     $success = 0;
     $message = '';
     $id = (int) $this->registry->router->getArg('id');
     $myUser = new \Model\User($id);
     $redirectUrl = $this->getRedirectUrl();
     if ($myUser->id > 0) {
         //check priviledge priority
         //Yeu cau de edit:
         // 1. Hoac la admin
         // 2. Hoac la edit ban than, dung cho moderator, judge...
         // 3. Hoac la co priority number < priority number cua user duoc edit
         if ($this->registry->me->groupid == GROUPID_ADMIN || $this->registry->me->id == $myUser->id) {
             $error = array();
             $success = array();
             $contents = '';
             $formData = array();
             srand((double) microtime() * 1000000);
             $newpass = rand(100000, 999999);
             if ($myUser->resetpass($newpass)) {
                 $success = 1;
                 //send mail
                 $this->registry->smarty->assign(array('newpass' => $newpass, 'myUser' => $myUser));
                 $mailContents = $this->registry->smarty->fetch($this->registry->smartyMail . 'user/resetpass.tpl');
                 $sender = new \Litpi\SendMail($this->registry, $myUser->email, $myUser->fullname, str_replace('{USERNAME}', $myUser->email, $this->registry->setting['mail']['subjectAdminResetpassUser']), $mailContents, $this->registry->setting['mail']['fromEmail'], $this->registry->setting['mail']['fromName']);
                 if ($sender->send()) {
                     $message = str_replace('###email###', $myUser->email, $this->registry->lang['controller']['succResetpass']);
                     $message .= ' (New password: '******')';
                 } else {
                     $message = str_replace('###email###', $myUser->email, $this->registry->lang['controller']['errResetpassSendMail']);
                     $message .= ' (New password: '******')';
                 }
             } else {
                 $message = $this->registry->lang['controller']['errResetpass'];
             }
         } else {
             $message = $this->registry->lang['global']['notpermissiontitle'];
         }
     } else {
         $message = $this->registry->lang['controller']['errNotFound'];
     }
     $this->registry->response->headers->set('Content-type', 'text/xml');
     $contents = '<?xml version="1.0" encoding="utf-8"?><result><success>' . $success . '</success><message>' . $message . '</message></result>';
     $this->registry->response->setContent($contents);
 }