Example #1
0
 public function userUpdateAction()
 {
     $user_id = $this->_request->getParam('user_id');
     if (empty($user_id)) {
         throw new Exception(__METHOD__ . ' : Empty input parameters');
     }
     $form = new FormUser(null, 'update');
     $table = new Wbusers();
     if ($this->_request->isPost()) {
         // Проверяем валидность данных формы
         if ($form->isValid($this->_getAllParams())) {
             // update data
             $data = array('login' => $this->_request->getParam('login'), 'pwd' => trim($this->_request->getParam('pwd')), 'name' => $this->_request->getParam('name'), 'email' => $this->_request->getParam('email'), 'active' => intval($this->_request->getParam('active')), 'role_id' => $this->_request->getParam('role_id'));
             $where = $table->getAdapter()->quoteInto('id = ?', $user_id);
             try {
                 $table->update($data, $where);
             } catch (Zend_Exception $e) {
                 $this->view->exception = $this->view->translate->_('Exception') . ' : ' . $e->getMessage();
             }
             // clear all cache
             $this->cache_helper->clearAllCache();
             // render
             $this->_forward('user-index', 'admin');
             // action, controller
             return;
         }
     }
     // create form
     $row = $table->find($user_id)->current();
     // fill form
     $form->populate(array('user_id' => $user_id, 'login' => $row->login, 'name' => $row->name, 'email' => $row->email, 'active' => $row->active, 'role_id' => $row->role_id));
     $form->submit->setLabel($this->view->translate->_('Update'));
     $form->setAction($this->view->baseUrl . '/admin/user-update');
     $this->view->form = $form;
     $this->view->title = 'Webacula :: ' . $this->view->translate->_('User update');
     $this->renderScript('admin/form-user.phtml');
 }
 public function forgotPasswordAction()
 {
     Zend_Loader::loadClass('FormForgotPassword');
     $form = new formForgotPassword();
     if ($this->_request->isPost()) {
         /* Проверяем валидность данных формы */
         if ($form->isValid($this->_getAllParams())) {
             $db = Zend_Registry::get('db_bacula');
             Zend_Loader::loadClass('Wbusers');
             $table = new Wbusers();
             // ищем email
             $select = $table->select()->where('login = ?', $this->_getParam('login'))->where('email = ?', $this->_getParam('email'));
             $row = $table->fetchRow($select);
             /* login + email найдены ? */
             if ($row) {
                 // генерируем новый пароль
                 $new_password = md5(uniqid(rand()));
                 // высылаем пароль
                 $res = $this->emailForgotPassword($row->email, $row->name, $new_password);
                 if ($res) {
                     // сохраняем пароль в БД
                     if (Zend_Registry::get('DB_ADAPTER') != 'PDO_SQLITE') {
                         // Sqlite do not have MD5 function
                         $new_password = md5($new_password);
                     }
                     $data = array('pwd' => $new_password);
                     $where = $table->getAdapter()->quoteInto('id = ?', $row->id);
                     $table->update($data, $where);
                     // goto home page
                     $this->view->msg = $this->view->translate->_("New password set");
                     $this->_redirector->gotoSimple('login', 'auth', null, array('from_forgot' => 1));
                     // action, controller
                 } else {
                     $this->view->msg = $this->view->translate->_("Error while sending email. Email not send");
                 }
             } else {
                 sleep(2);
                 // TODO increase this value
                 $this->view->msg = $this->view->translate->_("Username or email is incorrect");
             }
         }
     }
     /* Если данные не передавались или неверный логин, то выводим форму для авторизации */
     $this->view->title = $this->view->translate->_('Reset password');
     $this->view->form = $form;
 }