/** * Změní uživateli uložené heslo * * @param string $newPassword nové heslo * @param int $userID id uživatele * * @return boolean password výsledek změny hesla */ public function passwordChange($newPassword, $userID = null) { if (parent::passwordChange($newPassword, $userID)) { system('sudo htpasswd -b /etc/icinga/htpasswd.users ' . $this->getUserLogin() . ' ' . $newPassword); if (defined('DB_IW_SERVER_PASSWORD')) { $mysqli = new mysqli(DB_SERVER, DB_IW_SERVER_USERNAME, DB_IW_SERVER_PASSWORD, DB_IW_DATABASE); if ($mysqli->connect_errno) { $this->addStatusMessage("Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error, 'error'); } $salt = hash("sha256", uniqid($this->getUserLogin() . '_', mt_rand())); $pwhash = hash_hmac("sha256", $newPassword, $salt); $pwchquery = "UPDATE nsm_user SET user_password='******', user_salt = '" . $this->myDbLink->addSlashes($salt) . "', user_modified = NOW() WHERE user_name = '" . $this->getUserLogin() . "';"; if ($mysqli->query($pwchquery)) { $this->addStatusMessage(_('Heslo bylo nastaveno i pro Icinga Web'), 'success'); } else { $this->addStatusMessage(_('Heslo bylo nastaveno i pro Icinga Web'), 'warning'); } $mysqli->close(); } return true; } return false; }
Email: { required: true, email: true } } });', null, true); if ($emailTo) { $oPage->takemyTable(); $userEmail = $oPage->easeAddSlashes($emailTo); $userFound = $oPage->myDbLink->queryToArray('SELECT id,login FROM user WHERE email=\'' . $userEmail . '\''); if (count($userFound)) { $userID = intval($userFound[0]['id']); $userLogin = $userFound[0]['login']; $newPassword = $oPage->randomString(8); $passChanger = new EaseUser($userID); $passChanger->passwordChange($newPassword); $email = $oPage->addItem(new EaseMail($userEmail, 'Icinga Editor -' . _('Nové heslo pro') . ' ' . $_SERVER['SERVER_NAME'])); $email->addItem(_("Tvoje přihlašovací údaje byly změněny:\n")); $email->addItem(' Login: '******' Heslo: ' . $newPassword . "\n"); $email->send(); $oUser->addStatusMessage('Tvoje nové heslo vám bylo odesláno mailem na zadanou adresu <strong>' . $_REQUEST['Email'] . '</strong>'); $success = true; } else { $oUser->addStatusMessage('Promiňnte, ale email <strong>' . $_REQUEST['Email'] . '</strong> nebyl v databázi nalezen', 'warning'); } } else { $oUser->addStatusMessage(_('Zadejte prosím váš eMail.')); } $oPage->addItem(new IEPageTop(_('Obnova zapomenutého hesla'))); $oPage->addPageColumns();