예제 #1
0
 /**
  * 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;
 }
예제 #2
0
    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();