Esempio n. 1
0
 public function fetchRow($select, Default_Model_ResourceUsers $resource)
 {
     $result = $this->getDbTable()->fetchRow($select);
     if (0 == count($result)) {
         return;
     }
     $resource->setOptions($result->toArray());
     return $resource;
 }
Esempio n. 2
0
 public function indexAction()
 {
     $model = new Default_Model_Users();
     $params = array();
     $name = $this->getRequest()->getParam('nameSearch');
     $email = $this->getRequest()->getParam('emailSearch');
     $page = $this->getRequest()->getParam('page') ? (int) $this->getRequest()->getParam('page') : 1;
     $shop = $this->getRequest()->getParam('idShopSearch');
     $level = $this->getRequest()->getParam('idRoleSearch');
     $select = $model->getMapper()->getDbTable()->select()->where('NOT deleted');
     if (!empty($name)) {
         $params['nameSearch'] = $name;
         $select->where('name LIKE ?', '%' . $name . '%');
     }
     if (!empty($email)) {
         $params['emailSearch'] = $email;
         $select->where('email LIKE ?', '%' . $email . '%');
     }
     if (!empty($shop)) {
         $params['idShopSearch'] = $shop;
         $select->where('idShop = ?', $shop);
     }
     if (!empty($level)) {
         $params['idRoleSearch'] = $level;
         $select->where('idRole = ?', $level);
     }
     $select->order('created DESC');
     $this->view->page = $page;
     $this->view->search = $params;
     $result = $model->fetchAll($select);
     if (NULL != $result) {
         $paginator = Zend_Paginator::factory($result);
         $paginator->setItemCountPerPage(10);
         $paginator->setCurrentPageNumber($this->_getParam('page'));
         $paginator->setPageRange(5);
         $this->view->result = $paginator;
         $this->view->itemCountPerPage = $paginator->getItemCountPerPage();
         $this->view->totalItemCount = $paginator->getTotalItemCount();
         Zend_Paginator::setDefaultScrollingStyle('Sliding');
         Zend_View_Helper_PaginationControl::setDefaultViewPartial(array('_pagination.phtml', $params));
     }
     Needs_Roles::hasAccess('adaugare_utilizator', true);
     $form = new Default_Form_Users();
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/users/user-add.phtml'))));
     $this->view->form = $form;
     $formSearch = new Default_Form_UsersSearch();
     $formSearch->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/users/user-search.phtml'))));
     $this->view->formSearch = $formSearch;
     if ($this->getRequest()->isPost()) {
         $post = $this->getRequest()->getPost();
         if (!empty($post['action']) && $post['action'] == 'add') {
             if ($form->isValid($post)) {
                 $model = new Default_Model_Users();
                 $model->setOptions($form->getValues());
                 $password = substr(md5(sha1(rand(0, 9999999))), 0, 6);
                 $code = substr(md5(sha1(rand(0, 9999999))), 0, 6);
                 $model->setPassword(md5($password));
                 //generare parola random la inregistrare user
                 $model->setCode($code);
                 $model->setStatus(0);
                 if ($id = $model->save()) {
                     //BEGIN:salvam drepturile
                     if ($form->getValue('resourceId')) {
                         foreach ($form->getValue('resourceId') as $value) {
                             $resourceUser = new Default_Model_ResourceUsers();
                             $resourceUser->setResourceId($value);
                             $resourceUser->setUserId($id);
                             $resourceUser->save();
                         }
                     }
                     //END:salvam drepturile
                     //BEGIN: CHECK IF DISTRICT MANAGER AND SAVE SHOPS
                     if ($form->getValue('idRole') == 14) {
                         foreach ($form->getValue('idShopMulti') as $value) {
                             $shopUser = new Default_Model_DistrictManagerShops();
                             $shopUser->setIdShop($value);
                             $shopUser->setIdUser($id);
                             $shopUser->save();
                         }
                     }
                     //END: CHECK IF DISTRICT MANAGER AND SAVE SHOPS
                     //BeGIN: send email with user data, generated password and activation link
                     $activation = '<a href="' . WEBROOT . 'auth/activation/code/' . $code . '">Activate</a>';
                     $emailTemplate = new Default_Model_EmailTemplates();
                     $select = $emailTemplate->getMapper()->getDbTable()->select()->where('const = ?', 'user_activare_cont')->limit(1);
                     $emailTemplate->fetchRow($select);
                     if (NULL != $emailTemplate->getContent()) {
                         $emailArray = array();
                         $name = $model->getName();
                         $message = nl2br($emailTemplate->getContent());
                         $message = str_replace("{" . "\$" . "name}", $name, $message);
                         $message = str_replace("{" . "\$" . "password}", $password, $message);
                         $message = str_replace("{" . "\$" . "activation_link}", $activation, $message);
                         $emailArray['subject'] = $emailTemplate->getSubject();
                         $emailArray['content'] = $message;
                         $emailArray['toEmail'] = $model->getEmail();
                         $emailArray['toName'] = $name;
                         $emailArray['fromEmail'] = FROM_EMAIL;
                         $emailArray['fromName'] = FROM_NAME;
                         $emailArray['SMTP_USERNAME'] = SMTP_USERNAME;
                         $emailArray['SMTP_PASSWORD'] = SMTP_PASSWORD;
                         $emailArray['SMTP_PORT'] = SMTP_PORT;
                         $emailArray['SMTP_URL'] = SMTP_URL;
                         Needs_Tools::sendEmail($emailArray);
                     }
                     //END:  send email
                     $this->_flashMessenger->addMessage("<div class='success  canhide'><p>User was successfully added!<a href='javascript:;'>Close</a></p></div>");
                 } else {
                     $this->_flashMessenger->addMessage("<div class='failure canhide'><p>The user was not saved!<a href='javascript:;'>Close</a></p></div>");
                 }
                 $this->_redirect('/users');
             }
         }
     }
 }