public function init() { parent::init(); // Verify we're on the correct database //print_r(coreConfig::get('database_connection'));exit; $connectionInfo = coreConfig::get('database_connection'); $this->verbose("Using database: %s", $connectionInfo['database']); $username = trim($this->getOption('u')); $raw_password = trim($this->getOption('p')); if (empty($username) || empty($raw_password)) { $this->throwError('Username or password is empty.'); } $userid = UsersPeer::getUserId($username); if (false === $userid) { $this->throwError('User named "%s" not found.', $username); } $this->verbose("Userid: %s", $userid); $this->verbose("Set password to: %s", $raw_password); // update user record if (false === UsersPeer::updateUser($userid, array('raw_password' => $raw_password))) { $this->throwError('Could not update user "%s" (userid %s)', $username, $userid); } // only with linked PunBB forum if ($this->args->flag('forum')) { if (coreConfig::get('app_path_to_punbb') !== null) { PunBBUsersPeer::setPassword($username, $raw_password); } else { $this->throwError('Forum password: "******" is not defined in environment "%s"', CORE_ENVIRONMENT); } } $this->verbose('Success!'); }
/** * Updates any column data for given user id. * * 'raw_password' will be hashed as required and stored into 'password' column. * * @param int $userid * @param array $data * @return boolean */ private function updateUser($userid, $data) { if (isset($data['raw_password'])) { $data['password'] = coreContext::getInstance()->getUser()->getSaltyHashedPassword($data['raw_password']); unset($data['raw_password']); } if (false === UsersPeer::updateUser($userid, $data)) { $this->throwError('Could not update user id %s', $userid); } return true; }
/** * Edit Account * */ public function executeEdit($request) { if ($request->getMethod() != coreRequest::POST) { // fill in form with current account details $userdata = $this->getUser()->getUserDetails(); $formdata = array('username' => $userdata['username'], 'location' => $userdata['location'], 'email' => $userdata['email'], 'timezone' => $userdata['timezone']); $request->getParameterHolder()->add($formdata); } else { $validator = new coreValidator($this->getActionName()); if ($validator->validate($request->getParameterHolder()->getAll())) { $userdata = array('email' => trim($request->getParameter('email')), 'location' => trim($request->getParameter('location', '')), 'timezone' => (double) trim($request->getParameter('timezone'))); if (UsersPeer::updateUser($this->getUser()->getUserId(), $userdata)) { $this->redirect('profile/index'); } } } }
/** * Update the user password in the main site and forum databases. * * @param string $user * @param string $raw_password */ public function changePassword($username, $raw_password) { $user_id = UsersPeer::getUserId($username); $columns = array('raw_password' => $raw_password); UsersPeer::updateUser($user_id, $columns); // set new password on forum account (not in staging) if (coreContext::getInstance()->getConfiguration()->getEnvironment() !== 'staging') { // only with linked PunBB forum if (coreConfig::get('app_path_to_punbb') !== null) { PunBBUsersPeer::updateUser($username, $columns); } } }