/** * Getting the list of users * * @param unknown $sender * @param unknown $params * * @throws Exception */ public function getUsers($sender, $param) { $results = $errors = array(); try { if (!isset($param->CallbackParameter->searchCriteria) || ($serachCriteria = trim($param->CallbackParameter->searchCriteria)) === '') { $serachCriteria = ''; } $pageNo = 1; $pageSize = DaoQuery::DEFAUTL_PAGE_SIZE; if (isset($param->CallbackParameter->pagination)) { $pageNo = $param->CallbackParameter->pagination->pageNo; $pageSize = $param->CallbackParameter->pagination->pageSize; } $where = '`ua`.id != :sysId'; $params = array('sysId' => UserAccount::ID_SYSTEM_ACCOUNT); if ($serachCriteria !== '') { UserAccount::getQuery()->eagerLoad("UserAccount.person", 'inner join', 'ord', '`p`.id = `ua`.personId and (`p`.firstName like :firstName and `p`.lastName like :lastName)'); $params['firstName'] = $serachCriteria . '%'; $params['lastName'] = $serachCriteria . '%'; $where .= ' OR `ua`.username like :username'; $params['username'] = $serachCriteria . '%'; } $stats = array(); $users = UserAccount::getAllByCriteria($where, $params, true, $pageNo, $pageSize, array(), $stats); $results['pageStats'] = $stats; $results['items'] = array(); foreach ($users as $item) { $results['items'][] = $item->getJson(); } } catch (Exception $ex) { $errors[] = $ex->getMessage(); } $param->ResponseData = StringUtilsAbstract::getJson($results, $errors); }
public function saveUser($sender, $params) { $results = $errors = array(); try { Dao::beginTransaction(); if (!isset($params->CallbackParameter->firstName) || ($firstName = trim($params->CallbackParameter->firstName)) === '') { throw new Exception('System Error: firstName is mandatory!'); } if (!isset($params->CallbackParameter->lastName) || ($lastName = trim($params->CallbackParameter->lastName)) === '') { throw new Exception('System Error: lastName is mandatory!'); } if (!isset($params->CallbackParameter->userName) || ($userName = trim($params->CallbackParameter->userName)) === '') { throw new Exception('System Error: userName is mandatory!'); } if (!isset($params->CallbackParameter->roleid) || !($role = Role::get($params->CallbackParameter->roleid)) instanceof Role) { throw new Exception('System Error: role is mandatory!'); } $newpassword = trim($params->CallbackParameter->newpassword); if (!isset($params->CallbackParameter->userid) || !($userAccount = UserAccount::get($params->CallbackParameter->userid)) instanceof UserAccount) { $userAccount = new UserAccount(); $person = new Person(); if ($newpassword === '') { throw new Exception('System Error: new password is mandatory!'); } $newpassword = sha1($newpassword); } else { $person = $userAccount->getPerson(); if ($newpassword === '') { $newpassword = $userAccount->getPassword(); } else { $newpassword = sha1($newpassword); } } //double check whether the username has been used $users = UserAccount::getAllByCriteria('username=? and id!=?', array($userName, $userAccount->getId()), false, 1, 1); if (count($users) > 0) { throw new Exception('Username(=' . $userName . ') has been used by another user, please choose another one!'); } $person->setFirstName($firstName)->setLastName($lastName)->save(); $userAccount->setUserName($userName)->setPassword($newpassword)->setPerson($person)->save(); $results = $userAccount->clearRoles()->addRole($role)->getJson(); Dao::commitTransaction(); } catch (Exception $ex) { Dao::rollbackTransaction(); $errors[] = $ex->getMessage(); } $params->ResponseData = StringUtilsAbstract::getJson($results, $errors); }