function edit(Default_Model_Users $model) { $this->name->setValue($model->getName()); $this->name->setLabel(Zend_Registry::get('translate')->_('admin_name')); $this->accountName->setValue($model->getAccountName()); $this->accountName->setLabel(Zend_Registry::get('translate')->_('admin_account_name')); $this->email->setValue($model->getEmail()); $this->email->setLabel(Zend_Registry::get('translate')->_('admin_email')); $emailValidateDbNotExists = $this->email->getValidator('Zend_Validate_Db_NoRecordExists'); $emailValidateDbNotExists->setExclude(array('field' => 'email', 'value' => $model->getEmail())); $this->idRole->setValue($model->getIdRole()); $this->idRole->setLabel(Zend_Registry::get('translate')->_('admin_level')); $this->add->setValue(Zend_Registry::get('translate')->_('admin_edit_user')); }
public function forgotPasswordAction() { $form = new Default_Form_ForgotPassword(); $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/forgot-password.phtml')))); $this->view->formForgotPassword = $form; $model = new Default_Model_Users(); if ($this->getRequest()->isPost()) { if ($form->isValid($this->getRequest()->getPost())) { $model->setOptions($form->getValues()); $select = $model->getMapper()->getDbTable()->select()->from(array('u' => 'users'), array('u.*'))->where("NOT u.deleted")->where("u.email=?", $model->getEmail()); $result = $model->fetchRow($select); if (count($result) != 0) { $newpass = ''; $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"; for ($i = 0; $i < 8; $i++) { $n = rand(0, count($alphabet) - 1); $pass[$i] = $alphabet[$n]; $newpass .= $pass[$i]; } $newpassMd5 = md5($newpass); $model->setPassword($newpassMd5); $savedPass = $model->save(); $emailArray = array(); $emailArray['subject'] = 'Resetare Parola'; $emailArray['content'] = 'Noua dumneavoastra parola este: ' . $newpass; $emailArray['toEmail'] = $model->getEmail(); $emailArray['fromEmail'] = "*****@*****.**"; $emailArray['fromName'] = "Resetare Parola"; $emailArray['SMTP_USERNAME'] = SMTP_USERNAME; $emailArray['SMTP_PASSWORD'] = SMTP_PASSWORD; $emailArray['SMTP_PORT'] = SMTP_PORT; $emailArray['SMTP_URL'] = SMTP_URL; $sent = Needs_Tools::sendEmail($emailArray); if ($sent && $savedPass) { $this->_flashMessenger->addMessage("<div class='success canhide'><p>The password was successfully changed!</p><a href='javascript:;'></a></div>"); } else { $this->_flashMessenger->addMessage("<div class='error canhide'><p>The password was not changed!<a href='javascript:;'></a></p></div>"); } } else { $this->_flashMessenger->addMessage("<div class='error canhide'><p>The email was not found in the database!<a href='javascript:;'></a></p></div>"); } $this->_redirect('/auth/forgot-password/'); } } }
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'); } } } }
public function save(Default_Model_Users $value) { $auth = Zend_Auth::getInstance(); $authAccount = $auth->getStorage()->read(); if (null != $authAccount) { if (null != $authAccount->getId()) { $user = new Default_Model_Users(); $user->find($authAccount->getId()); $data = array('idRole' => '1', 'accountName' => $value->getAccountName(), 'email' => $value->getEmail(), 'name' => $value->getName(), 'password' => $value->getPassword(), 'code' => $value->getCode(), 'status' => $value->getStatus(), 'deleted' => '0'); if (null === ($id = $value->getId())) { $data['created'] = new Zend_Db_Expr('NOW()'); $id = $this->getDbTable()->insert($data); //logs action done $user_name = $user->name; $action_done = ' ' . $user_name . ' a adaugat membrul ' . $value->getName() . ' '; Needs_Logs::DbLogTracking($user->id, $id, 'users', 'adaugare', $action_done); //end logs action done } else { $data['modified'] = new Zend_Db_Expr('NOW()'); $this->getDbTable()->update($data, array('id = ?' => $id)); //logs action done $user_name = $user->name; $action_done = ' ' . $user_name . ' a editat membrul ' . $value->getName() . ' '; Needs_Logs::DbLogTracking($user->id, $id, 'users', 'editare', $action_done); //end logs action done } return $id; } } }