Exemple #1
0
 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!');
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * 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');
             }
         }
     }
 }
Exemple #4
0
 /**
  * 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);
         }
     }
 }