public function signupAction() { $form = new AccountForm(); $request = $this->getRequest(); if ($request->isPost()) { $user = new User(); $form->setInputFilter($user->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $user->exchangeArray($form->getData()); $username = $this->getUserTable()->getUserByName($user->username); if (!empty($username)) { $this->redirect()->toRoute('user', array('action' => 'signup')); echo '<div class="alert alert-error"> <button type="button" class="close" data-dismiss="alert">×</button> <h4>Warning!</h4> User already exist!. </div>'; } else { $this->getUserTable()->createAccount($user); $this->redirect()->toRoute('user'); } } } return array('form' => $form); }
protected function createUser(array $data) { $user = new User(); $user->exchangeArray($data); $user->setPassword($data['password']); $user->setRegisterDate(); $userTable = $this->getServiceLocator()->get('UserTable'); $userTable->saveUser($user); return true; }
private function getUser($id) { $userData = $this->userMapper->getUserById($id); if (!$userData) { return null; } $user = new User(); $user->exchangeArray($userData); return $user; }
public function testGetArrayCopyReturnsAnArrayWithPropertyValues() { $user = new User(); $data = array('userId' => 123, 'firstName' => 'Ho', 'lastName' => 'Kiet', 'email' => '*****@*****.**', 'password' => '123', 'role' => 'Operator', 'activated' => 1); $user->exchangeArray($data); $copyArray = $user->getArrayCopy(); $this->assertSame($data['userId'], $copyArray['userId'], '"userId" was not set correctly'); $this->assertSame($data['firstName'], $copyArray['firstName'], '"firstName" was not set correctly'); $this->assertSame($data['lastName'], $copyArray['lastName'], '"lastName" was not set correctly'); $this->assertSame($data['email'], $copyArray['email'], '"email" was not set correctly'); $this->assertSame($data['password'], $copyArray['password'], '"password" was not set correctly'); $this->assertSame($data['role'], $copyArray['role'], '"role" was not set correctly'); $this->assertSame($data['activated'], $copyArray['activated'], '"activated" was not set correctly'); }
public function testSaveUserWillUpdateExistingUsersIfTheyAlreadyHaveAnId() { $userData = array('userId' => 125, 'firstName' => 'Ho', 'lastName' => 'Kiet', 'email' => '*****@*****.**', 'password' => '123', 'role' => 'Operator', 'activated' => 1); $user = new User(); $user->exchangeArray($userData); $resultSet = new ResultSet(); $resultSet->setArrayObjectPrototype(new User()); $resultSet->initialize(array($user)); $mockTableGateway = $this->getMock('Zend\\Db\\TableGateway\\TableGateway', array('select', 'update'), array(), '', false); $mockTableGateway->expects($this->once())->method('select')->with(array('userId' => 125))->will($this->returnValue($resultSet)); $mockTableGateway->expects($this->once())->method('update')->with(array('userId' => 125, 'firstName' => 'Ho', 'lastName' => 'Kiet', 'email' => '*****@*****.**', 'password' => '123', 'role' => 'Operator', 'activated' => 1)); $userTable = new UserTable($mockTableGateway); $userTable->saveUser($user); }
public function indexAction() { $form = new \Admin\Form\Subject\CategoryFilter($this->getServiceLocator()); $form->setData($this->params()->fromQuery()); $this->getViewModel()->setVariable('form', $form); if ($form->isValid()) { $user = new User(); $user->exchangeArray($form->getData()); $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); /** @var $userMapper \User\Model\UserMapper */ $paginator = $userMapper->search($user); $this->getViewModel()->setVariable('paginator', $paginator); } return $this->getViewModel(); }
public function addAction() { $form = new UserForm(); $form->get('submit')->setValue('Add'); $request = $this->getRequest(); if ($request->isPost()) { $user = new User(); $form->setInputFilter($user->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $user->exchangeArray($form->getData()); $this->getUserTable()->saveUser($user); return $this->redirect()->toRoute('user'); } } return array('form' => $form); }
public function addAction() { $form = new \Admin\Form\Expert\Expert($this->getServiceLocator()); if ($this->getRequest()->isPost()) { $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { $data = $form->getData(); $user = new User(); $user->exchangeArray($data); /** @var \User\Model\UserMapper $userMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); $user->setRole(User::ROLE_MENTOR); $userMapper->updateUser($user); /** @var \Subject\Model\SubjectMapper $subjectMapper */ $subjectMapper = $this->getServiceLocator()->get('Subject\\Model\\SubjectMapper'); $subjectIds = explode(',', $data['subjectId']); foreach ($subjectIds as $subjectId) { $subject = new Subject(); $subject->setId($subjectId); if ($subjectMapper->get($subject)) { $subjectNames[] = $subject->getName(); $expertSubject = new Expert\Subject(); $expertSubject->setExpertId($user->getId()); $expertSubject->setSubjectId($subjectId); $expertSubject->setCreatedById($this->user()->getIdentity()); $expertSubject->setCreatedDateTime(DateBase::getCurrentDateTime()); /** @var \Expert\Model\Expert\SubjectMapper $expertSubjectMapper */ $expertSubjectMapper = $this->getServiceLocator()->get('Expert\\Model\\Expert\\SubjectMapper'); $expertSubjectMapper->save($expertSubject); } } if ($form->get('afterSubmit')->getValue()) { return $this->redirect()->toUrl($form->get('afterSubmit')->getValue()); } } } $this->getViewModel()->setVariable('form', $form); return $this->getViewModel(); }
public function addAction() { // $user_session = new \Zend\Session\Container('user'); // if ($user_session->email == null) { // return $this->redirect()->toRoute('signin', array( // 'action' => 'signin' // )); // } // if ($user_session->role == 'Operator') { // return array('error' => 'You don\'t have permission to do this action'); // } $auth = new \Zend\Authentication\AuthenticationService(); if ($auth->hasIdentity()) { $user = $auth->getIdentity(); } else { return $this->redirect()->toRoute('signin', array('action' => 'index')); } if ($user->role == 'Operator') { //$this->flashMessenger()->addMessage('You don\'t have permission to do this action'); //$this->redirect()->toRoute('add'); return array('error' => 'You don\'t have permission to do this action'); } $form = new UserForm(null, $user->role); $form->get('submit')->setValue('Add'); $request = $this->getRequest(); if ($request->isPost()) { $user = new User(); $form->setInputFilter($user->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $user->exchangeArray($form->getData()); $this->getUserTable()->saveUser($user); return $this->redirect()->toRoute('user'); } else { echo "Fail to add new user"; } } return array('form' => $form, 'flashMessages' => $this->flashMessenger()->getMessages()); }
public function ajaxsigninAction() { /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $user = new User(); /* @var $userMapper \User\Model\UserMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); /* @var $serviceUser \User\Service\User */ $serviceUser = $this->getServiceLocator()->get('User\\Service\\User'); $data = $request->getPost(); $user->exchangeArray((array) $data); if (count($error = $serviceUser->validateSigninInfo($user))) { return new JsonModel(array('code' => 0, 'message' => $error)); } return new JsonModel(array('code' => 1, 'user' => $serviceUser->getUser()->toStd())); } return null; }
/** * @author DuongNQ * @param \Expert\Model\Expert\Subject $expertsub */ public function search($expertsub, $options) { $select = $this->getDbSql()->select(array('es' => self::TABLE_NAME)); if ($expertsub->getSubjectId()) { $select->where(['es.subjectId' => $expertsub->getSubjectId()]); } if ($expertsub->getOption('subjectIds')) { $select->where(['es.subjectId' => $expertsub->getOption('subjectIds')]); } $select->order(['es.id' => 'DESC']); $select->group('es.expertId'); // vdump($this->getDbSql()->buildSqlString($select));die; $paginator = $this->preparePaginator($select, $options, new Subject()); $userIds = array(); $users = array(); /** @var \Expert\Model\Expert\Subject $es */ foreach ($paginator as $es) { $userIds[] = $es->getExpertId(); } $subjects = $this->fetchAllSubject($expertsub->addOption('expertIds', $userIds)); if ($userIds) { $select = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]); $select->where(['u.id' => $userIds]); $query = $this->getDbSql()->buildSqlString($select); $result = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); if (count($result)) { $resultArray = $result->toArray(); foreach ($resultArray as $u) { $user = new User(); $users[$u['id']] = $user->exchangeArray($u); } } } /** @var \Expert\Model\Expert\Subject $expertsub */ foreach ($paginator->getCurrentModels() as $expertsub) { $userId = $expertsub->getExpertId(); $expertsub->addOption('subject', isset($subjects[$userId]) ? $subjects[$userId] : null); $expertsub->addOption('user', isset($users[$userId]) ? $users[$userId] : null); } return $paginator; }
/** * @author DuongNQ * @param \Expert\Model\Expert $exp */ public function search($exp, $options) { $select = $this->getDbSql()->select(array('e' => self::TABLE_NAME)); $select->order(['e.id' => 'DESC']); $paginator = $this->preparePaginator($select, $options, new Expert()); $userIds = array(); $users = array(); /** @var Expert/Model/Expert $expert */ foreach ($paginator as $expert) { $userIds[] = $expert->getId(); } if ($userIds) { $select = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]); $select->where(['u.id' => $userIds]); $query = $this->getDbSql()->buildSqlString($select); $result = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); if (count($result)) { $resultArray = $result->toArray(); foreach ($resultArray as $u) { $user = new User(); $users[$u['id']] = $user->exchangeArray($u); } } } /** @var /Expert/Model/Expert $expert */ foreach ($paginator->getCurrentModels() as $expert) { $userId = $expert->getId(); $expert->addOption('user', isset($users[$userId]) ? $users[$userId] : null); } return $paginator; }
/** * @return array|null * @param \User\Model\User $user * todo l?y user theo email và activeCode */ public function getUserNotActive($user) { if (!$user->getEmail() || !$user->getActiveKey()) { return null; } $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME)); $select->where(['email' => $user->getEmail(), 'activeKey' => $user->getActiveKey()]); $select->limit(1); $query = $this->getDbSql()->buildSqlString($select); $results = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); if ($results->count()) { $data = $results->current(); $user->exchangeArray((array) $results->current()); return $user; } return null; }
public function editAction() { $this->accessRights(13); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $this->childModuleAccessRights(24, 'edit'); //Accept Child Module ID & it's Actions: add, edit, view, disable $msgs = ''; //Get user id and validate $id = (int) $this->params()->fromRoute('id', 0); if (!$id) { return $this->redirect()->toRoute('user', array('action' => 'add')); } //Generate Adapter $this->adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'); // Get the User with the specified id. An exception is thrown // if it cannot be found, in which case go to the index page. try { $user_data = $this->getUserTable()->getUser($this->adapter, $id); //Get user data } catch (\Exception $ex) { return $this->redirect()->toRoute('user', array('action' => 'index')); } $from = (array) $user_data; $form = new UserEditForm($this->adapter); $form->setData($user_data); //Update record after data posting $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); //get previously posted data //Check if user is trying to update a password if ($request->getPost('password') != $request->getPost('confirm_password')) { $msgs = 'Set new password and confirm new password fields doesn\'t match.'; } else { //Update user credentials $user = new User(); $form->setInputFilter($user->getInputFilter()); $form->setData($request->getPost()); $form->isValid(); //Save to Audit Trail //prepare audit trail parameters $to = $this->getRequest()->getPost()->toArray(); $diff = array_diff_assoc($to, $from); //User Role Update if (array_key_exists("role_id", $diff)) { $from_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $from['role_id']); $from['role_name'] = $from_role_name['role_name']; $to_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $to['role_id']); $to['role_name'] = $to_role_name['role_name']; $diff_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $to['role_id']); $diff['role_name'] = $diff_role_name['role_name']; } //Company Update if (array_key_exists("company_id", $diff)) { $from_company_name = (array) $this->getCompanyTable()->getCompany($from['company_id']); $from['company_name'] = $from_company_name['company_name']; $to_company_name = (array) $this->getCompanyTable()->getCompany($to['company_id']); $to['company_name'] = $to_company_name['company_name']; $diff_company_name = (array) $this->getCompanyTable()->getCompany($to['company_id']); $diff['company_name'] = $diff_company_name['company_name']; } unset($diff['submit'], $diff['app_user_credentials_id'], $diff['user_detail_id'], $diff['role_id'], $diff['company_id'], $diff['password'], $diff['confirm_password']); //Remove IDs $changes = $this->prepare_modified_data($from, $to, $diff); $this->save_to_audit_trail($to['username'], $changes['pre'], $changes['post'], 'edit', 24); // end audit trail parameters $user->exchangeArray($request->getPost()); $this->getUserTable()->saveUser($request->getPost()); $user_data = $this->getUserTable()->getUser($this->adapter, $id); //Get user data //Verify if admin had reset a user password $this->passwordHadBeenChanged('Newswire Password Reset', $request->getPost(), $request->getPost('email')); //Redirect to index $this->flashMessenger()->addMessage(['content' => $request->getPost('username') . ' has been updated!', 'type' => 'success']); $this->redirect()->toRoute('user'); } } $view = new ViewModel(array('form' => $form, 'msgs' => $msgs, 'users' => $this->getUserTable()->fetchAll($this->adapter), 'companies' => $this->getUserTable()->getAllCompany($this->adapter), 'action' => 'edit', 'user_id' => $id, 'user_data' => $user_data, 'tab_menus' => $this->getTabMenu('User & Role'), 'access_rights' => $this->getSubModuleAccessRights(24))); $view->setTemplate('user/index'); return $view; }
/** * * @param \User\Model\User $item * @param unknown $options */ public function search($item, $options) { $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME)); if ($item->getId()) { $select->where(['u.id' => $item->getId()]); } if ($item->getUsername()) { $select->where(['(u.username LIKE ? OR u.fullName LIKE ?)' => ['%' . $item->getUsername() . '%', '%' . $item->getUsername() . '%']]); } if ($item->getEmail()) { $select->where(['(u.email LIKE ?)' => '%' . $item->getEmail() . '%']); } if ($item->getActive()) { if ($item->getActive() > 0) { $select->where(['u.active' => 1]); } else { $select->where(['(u.active IS NULL OR u.active != ?)' => 1]); } } if ($item->getRole()) { $select->where(['u.role' => $item->getRole()]); } $select->order(['u.id' => 'DESC']); /* $query = $this->getDbSql()->buildSqlString($select); vdump($query);die; */ $paginator = $this->preparePaginator($select, $options, new User()); $userIds = []; $districIds = []; $cityIds = []; $ids = []; foreach ($paginator as $user) { /*@var $user \User\Model\User */ if ($user->getCreatedById()) { $userIds[$user->getCreatedById()] = $user->getCreatedById(); } if ($user->getDistrictId()) { $districIds[$user->getDistrictId()] = $user->getDistrictId(); } if ($user->getCityId()) { $cityIds[$user->getCityId()] = $user->getCityId(); } $ids[] = $user->getId(); } $dbAdapter = $this->getDbAdapter(); $users = []; if (count($userIds)) { $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME)); $select->where(['u.id' => $userIds]); $query = $this->getDbSql()->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows as $row) { $createdBy = new User(); $createdBy->exchangeArray((array) $row); $users[$createdBy->getId()] = $createdBy; } } } $cities = []; if (count($cityIds)) { $select = $this->getDbSql()->select(array('c' => \Address\Model\CityMapper::TABLE_NAME)); $select->where(['id' => $cityIds]); $query = $this->getDbSql()->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows as $row) { $city = new \Address\Model\City(); $city->exchangeArray((array) $row); $cities[$city->getId()] = $city; } } } $districs = []; if (count($districIds)) { $select = $this->getDbSql()->select(array('c' => \Address\Model\DistrictMapper::TABLE_NAME)); $select->where(['id' => $districIds]); $query = $this->getDbSql()->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows as $row) { $distric = new \Address\Model\District(); $distric->exchangeArray((array) $row); $districs[$distric->getId()] = $distric; } } } if (count($paginator->getCurrentModels())) { foreach ($paginator->getCurrentModels() as $user) { if ($user->getCreatedById() && isset($users[$user->getCreatedById()])) { $user->addOption('createdBy', $users[$user->getCreatedById()]); } if ($user->getCityId() && isset($cities[$user->getCityId()])) { $user->setCity($cities[$user->getCityId()]); } if ($user->getDistrictId() && isset($districs[$user->getDistrictId()])) { $user->setDistrict($districs[$user->getDistrictId()]); } } } return $paginator; }
/** * @param $option */ public function reportemployee($option) { $select = $this->getDbSql()->select(['ca' => self::TABLE_NAME]); $select->columns(['callcenter', 'mentor', 'count' => new Expression('COUNT(ca.id)'), 'rating' => new Expression('AVG(ca.rating)'), 'createdDate', 'createdDateTime', 'endedDate', 'endedDateTime', 'time' => new Expression('Sum(TIMESTAMPDIFF(MINUTE,`createdDateTime`,`endedDateTime`))')]); $select->where(['endedDate IS NOT NULL', 'endedDateTime IS NOT NULL']); if ($option['fromDate']) { $select->where(['ca.endedDate >= ?' => $option['fromDate']]); } if ($option['toDate']) { $select->where(['ca.endedDate <= ?' => $option['toDate']]); } if ($option['username']) { $predicateSet = new PredicateSet(); $predicateSet->addPredicate(new Like('ca.callcenter', '%' . $option['username'] . '%'), $predicateSet::OP_OR); $predicateSet->addPredicate(new Like('ca.mentor', '%' . $option['username'] . '%'), $predicateSet::OP_OR); $select->where($predicateSet); // // $select->where([ // 'ca.callcenter LIKE ?' => '%'.$option['username'].'%', // 'ca.mentor LIKE ?' => '%'.$option['username'].'%' // ],Predicate::OP_AND); } if ($option['role'] == User::ROLE_MENTOR) { $select->where(['ca.mentor IS NOT NULL', 'ca.callcenter IS NULL']); } if ($option['role'] == User::ROLE_CALLCENTER) { $select->where(['ca.callcenter IS NOT NULL', 'ca.mentor IS NULL']); } $select->group(['endedDate', 'callcenter', 'mentor']); if (isset($option['sort']) && $option['sort']) { $sort = $option['sort']; $select->order([$sort['sort'] . ' ' . $sort['dir']]); } else { $select->order(['endedDate DESC']); } $query = $this->getDbSql()->buildSqlString($select); $rows = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); $result = []; $data = []; $usernames = []; $users = []; if (count($rows)) { foreach ($rows as $row) { if ($row['callcenter'] != null) { $usernames[] = $row['callcenter']; } if ($row['mentor'] != null) { $usernames[] = $row['mentor']; } $data[] = $row; } $select1 = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]); $select1->where(['u.username' => $usernames]); $query1 = $this->getDbSql()->buildSqlString($select1); $rows1 = $this->getDbAdapter()->query($query1, Adapter::QUERY_MODE_EXECUTE); if (count($rows1)) { foreach ($rows1 as $r) { $u = new User(); $u->exchangeArray((array) $r); $users[$u->getUsername()] = $u; } } $checkDate = ''; foreach ($data as $row) { $timediff = ''; if ($row['endedDate'] != $checkDate) { $checkDate = $row['endedDate']; $createdDatetime = new \DateTime($row['createdDateTime']); $endDatetime = new \DateTime($row['endedDateTime']); $timediff = date_diff($createdDatetime, $endDatetime)->format('%i'); } else { $createdDatetime = new \DateTime($row['createdDateTime']); $endDatetime = new \DateTime($row['endedDateTime']); $timediff += date_diff($createdDatetime, $endDatetime)->format('%i'); } $result[$row['endedDate']][] = ['rating' => $row['rating'], 'count' => $row['count'], 'user' => $row['callcenter'] ? $users[$row['callcenter']] : $users[$row['mentor']], 'time' => $row['time']]; } } return $result; }
public function addAction() { /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); $sl = $this->getServiceLocator(); /* @var $cityMapper \Address\Model\CityMapper */ $cityMapper = $sl->get('Address\\Model\\CityMapper'); $city = new \Address\Model\City(); /* @var $districtMapper \Address\Model\DistrictMapper */ $districtMapper = $sl->get('Address\\Model\\DistrictMapper'); $district = new \Address\Model\District(); $districts = array(); if (!!($cityId = $request->getPost('cityId'))) { $district->setCityId($cityId); $districts = $districtMapper->fetchAll($district); } $form = new \System\Form\User\Add($this->getServiceLocator()); $form->setCities($city->toSelectBoxArray($cityMapper->fetchAll())); $form->setDistricts($district->toSelectBoxArray($districts)); if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); $form->setData($data); if ($form->isValid()) { $user = new User(); $user->exchangeArray($form->getData()); $user->setSalt($user->generateSalt()); $user->setPassword($user->createPassword()); if (!$user->getRole()) { $user->setRole(User::ROLE_GUEST); } if ($user->getBirthdate()) { $user->setBirthdate(DateBase::toCommonDate($user->getBirthdate())); } $user->setActive(1); $user->setCreatedById($this->user()->getIdentity()); $user->setCreatedDate(DateBase::getCurrentDate()); $user->setCreatedDateTime(DateBase::getCurrentDateTime()); $userMapper = $this->getServiceLocator()->get('\\User\\Model\\UserMapper'); $userMapper->save($user); if ($form->get('afterSubmit')->getValue()) { return $this->redirect()->toUrl($form->get('afterSubmit')->getValue()); } } } $viewModel = new ViewModel(); $viewModel->setVariable('form', $form); return $viewModel; }