diff --git a/html/class_passwordRecovery.inc b/html/class_passwordRecovery.inc index c36bcd1fcb69c3b9057fc52915737f2b389d12b1..32fc0c600761fc092098c4537d533aa90763981d 100644 --- a/html/class_passwordRecovery.inc +++ b/html/class_passwordRecovery.inc @@ -28,75 +28,83 @@ require_once("variables.inc"); class standAlonePage { var $directory; var $activated; + protected $interactive; /* Constructor */ - function __construct() + function __construct($interactive = TRUE) { global $config, $ssl, $ui; - /* Destroy old session if exists. - Else you will get your old session back, if you not logged out correctly. */ - session::destroy(); - session::start(); - /* Reset errors */ - reset_errors(); + $this->interactive = $interactive; - $config = $this->loadConfig(); + if ($this->interactive) { + /* Destroy old session if exists. + Else you will get your old session back, if you not logged out correctly. */ + session::destroy(); + session::start(); - /* If SSL is forced, just forward to the SSL enabled site */ - if (($config->get_cfg_value("forcessl") == "TRUE") && ($ssl != '')) { - header ("Location: $ssl"); - exit; - } - - $this->setupSmarty(); + /* Reset errors */ + reset_errors(); - $smarty = get_smarty(); + $config = $this->loadConfig(); - /* Generate server list */ - $servers = array(); - foreach ($config->data['LOCATIONS'] as $key => $ignored) { - $servers[$key] = $key; - } + /* If SSL is forced, just forward to the SSL enabled site */ + if (($config->get_cfg_value("forcessl") == "TRUE") && ($ssl != '')) { + header ("Location: $ssl"); + exit; + } - $smarty->assign("show_directory_chooser", FALSE); + $this->setupSmarty(); - if (isset($_POST['server'])) { - $this->directory = validate($_POST['server']); - } elseif (isset($_GET['directory']) && isset($servers[$_GET['directory']])) { - $this->directory = validate($_GET['directory']); - } else { - $this->directory = $config->data['MAIN']['DEFAULT']; + $smarty = get_smarty(); - if (!isset($servers[$this->directory])) { - $this->directory = key($servers); + /* Generate server list */ + $servers = array(); + foreach ($config->data['LOCATIONS'] as $key => $ignored) { + $servers[$key] = $key; } - if (count($servers) > 1) { - $smarty->assign("show_directory_chooser", TRUE); - $smarty->assign("server_options", $servers); - $smarty->assign("server_id", $this->directory); + $smarty->assign("show_directory_chooser", FALSE); + + if (isset($_POST['server'])) { + $this->directory = validate($_POST['server']); + } elseif (isset($_GET['directory']) && isset($servers[$_GET['directory']])) { + $this->directory = validate($_GET['directory']); + } else { + $this->directory = $config->data['MAIN']['DEFAULT']; + + if (!isset($servers[$this->directory])) { + $this->directory = key($servers); + } + + if (count($servers) > 1) { + $smarty->assign("show_directory_chooser", TRUE); + $smarty->assign("server_options", $servers); + $smarty->assign("server_id", $this->directory); + } } - } - /* Set config to selected one */ - $config->set_current($this->directory); - session::global_set('config', $config); + /* Set config to selected one */ + $config->set_current($this->directory); + session::global_set('config', $config); + } $this->activated = $this->readLdapConfig(); if (!$this->activated) { /* Password recovery has been disabled */ return; } - initLanguage(); + if ($this->interactive) { + initLanguage(); - if (session::global_is_set('plist')) { - session::global_un_set('plist'); - } - $ui = new fake_userinfo(); - load_plist(); + if (session::global_is_set('plist')) { + session::global_un_set('plist'); + } + $ui = new fake_userinfo(); + load_plist(); - $ssl = $this->checkForSSL(); + $ssl = $this->checkForSSL(); + } } function loadConfig() @@ -254,9 +262,9 @@ class passwordRecovery extends standAlonePage { var $usealternates; /* Constructor */ - function __construct() + function __construct($interactive = TRUE) { - parent::__construct(); + parent::__construct($interactive); if (isset($_GET['email_address']) && $_GET['email_address'] != "") { $this->email_address = validate($_GET['email_address']); @@ -509,19 +517,21 @@ class passwordRecovery extends standAlonePage { $this->uid = $attrs['uid'][0]; $this->step = 2; - $smarty = get_smarty(); + if ($this->interactive) { + $smarty = get_smarty(); - $smarty->assign('uid', $this->uid); - $smarty->assign('email_address', $this->email_address); - $params = $this->encodeParams(array('uid', 'directory', 'email_address')); - $smarty->assign('params', $params); + $smarty->assign('uid', $this->uid); + $smarty->assign('email_address', $this->email_address); + $params = $this->encodeParams(array('uid', 'directory', 'email_address')); + $smarty->assign('params', $params); + } return $attrs['dn']; } - protected function generateAndStoreToken() + function generateAndStoreToken() { - $activatecode = $this->generateRandomHash(); + $activatecode = self::generateRandomHash(); $error = $this->storeToken($activatecode); @@ -587,7 +597,7 @@ class passwordRecovery extends standAlonePage { } } - protected function changeUserPassword($new_password, $new_password_repeated) + function changeUserPassword($new_password, $new_password_repeated) { $dn = $this->getUserDn(); if (!$dn) {