function processFieldInterface($name, $prefix = '') { switch ($name) { case 'password': if (!empty($_REQUEST[$prefix . $name . '1'])) { $val = $_REQUEST[$prefix . $name . '1']; if ($val != $_REQUEST[$prefix . $name . '2']) { trigger_error('Password and password confirmation do not match; Password not saved.'); } else { if (strlen($val) < $this->getMinPasswordLength()) { trigger_error('Password is too short - must be at least ' . $this->getMinPasswordLength() . ' characters; Password not saved.'); } else { if (!preg_match('/[0-9]+/', $val) || !preg_match('/[^0-9]+/', $val)) { trigger_error('Password is too simple - it must contain letters and numbers; Password not saved.'); } else { $this->setValue($name, jethro_password_hash($val)); $this->_tmp['raw_password'] = $val; // only saved in this script execution } } } } break; case 'permissions': if (!$GLOBALS['user_system']->havePerm(PERM_SYSADMIN)) { return; } // fall through // fall through default: parent::processFieldInterface($name, $prefix); } }
private function processSetPassword() { $db = $GLOBALS['db']; $val = $_REQUEST['password1']; if ($val != $_REQUEST['password2']) { $this->_error = 'Password and password confirmation do not match. Try again.'; require_once 'templates/set_password.template.php'; exit; } else { if (strlen($val) < MEMBER_PASSWORD_MIN_LENGTH) { $this->_error = 'Password is too short - must be at least ' . MEMBER_PASSWORD_MIN_LENGTH . ' characters; Password not saved.'; require_once 'templates/set_password.template.php'; exit; } else { if (!preg_match('/[0-9]+/', $val) || !preg_match('/[^0-9]+/', $val)) { $this->_error = 'Password is too simple - it must contain letters and numbers; Password not saved.'; require_once 'templates/set_password.template.php'; exit; } else { $sql = 'UPDATE _person ' . 'SET `member_password` = ' . $db->quote(jethro_password_hash($val)) . ', ' . 'resethash = NULL, ' . 'resetexpires = NULL ' . 'WHERE id = ' . (int) $_SESSION['member']['id']; $res = $db->exec($sql); check_db_result($res); if (!empty($_REQUEST['isreset'])) { add_message('Your password has been successfully changed.'); } else { add_message('Welcome! Your account is complete and you are now logged in.'); } } } } }