--- a/busui/owa/modules/base/usersChangePassword.php +++ b/busui/owa/modules/base/usersChangePassword.php @@ -1,1 +1,97 @@ - + + * @copyright Copyright © 2006 Peter Adams + * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 + * @category owa + * @package owa + * @version $Revision$ + * @since owa 1.0.0 + */ + +class owa_usersChangePasswordController extends owa_controller { + + function owa_usersChangePasswordController($params) { + + return owa_usersChangePasswordController::__construct($params); + + } + + function __construct($params) { + + parent::__construct($params); + + // Add validations to the run + $v1 = owa_coreAPI::validationFactory('stringMatch'); + $v1->setValues(array($this->getParam('password'), $this->getParam('password2'))); + $v1->setErrorMessage("Your passwords must match."); + $this->setValidation('password_match', $v1); + + $v2 = owa_coreAPI::validationFactory('stringLength'); + $v2->setValues($this->getParam('password')); + $v2->setConfig('operator', '>='); + $v2->setConfig('length', 6); + $v2->setErrorMessage("Your password must be at least 6 characters in length."); + $this->setValidation('password_length', $v2); + + return; + } + + function action() { + + $auth = &owa_auth::get_instance(); + $status = $auth->authenticateUserTempPasskey($this->params['k']); + + // log to event queue + if ($status === true) { + $eq = & eventQueue::get_instance(); + $new_password = array('key' => $this->params['k'], 'password' => $auth->encryptPassword($this->params['password']), 'ip' => $_SERVER['REMOTE_ADDR']); + $eq->log($new_password, 'base.set_password'); + $auth->deleteCredentials(); + $this->setRedirectAction('base.loginForm'); + $this->set('status_code', 3006); + } else { + $this->setRedirectAction('base.loginForm'); + $this->set('error_code', 2011); // can't find key in the db + } + + return; + } + + function errorAction() { + //print 'error action'; + $this->setView('base.usersPasswordEntry'); + $this->set('k', $this->getParam('k')); + //$this->set('password', $this->getParam('password')); + //$this->set('password2', $this->getParam('password2')); + return; + } +} + +?>