/* Diese Datei ist Teil von pmv-client * * pmv-client ist Freie Software: Sie können es unter den Bedingungen * der GNU General Public License, wie von der Free Software Foundation, * Version 3 der Lizenz weiter verteilen und/oder modifizieren. * * Dieses Programm wird in der Hoffnung bereitgestellt, dass es nützlich sein * wird, jedoch OHNE JEDE GEWÄHR,; sogar ohne die implizite Gewähr der * MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. * Siehe die GNU General Public License für weitere Einzelheiten. * * Sie sollten eine Kopie der GNU General Public License zusammen mit diesem * Programm erhalten haben. Wenn nicht, siehe . * * SPDX-License-Identifier: GPL-3.0-only */ #include #include #include #include #include "passdialog.h" #include "ui_passdialog.h" PassDialog::PassDialog(QWidget *parent) : QDialog(parent), ui(new Ui::PassDialog) { ui->setupUi(this); // Prüfe ob Datenbankverbindung besteht db = QSqlDatabase::database(); if (!db.isOpen()) { qDebug() << "Fehler: Datenbank nicht verbunden!"; this->done(QDialog::Rejected); } } PassDialog::~PassDialog() { delete ui; } void PassDialog::on_buttonBox_accepted() { // Hier Kennwortänderung vornehmen QSqlQuery qry; qry.prepare("SELECT Password=PASSWORD(:pass) AS ok FROM mysql.user WHERE User=:user"); qry.bindValue(":pass", ui->lineEdit_old->text()); qry.bindValue(":user", db.userName()); qry.exec(); if (!qry.first()) { // Meldung: altes Kenwort falsch und Fokus auf altes Kennwort ui->lineEdit_old->setFocus(); return; } if (qry.value("ok") == 0) { qDebug() << "Altes Kennwort falsch"; ui->lineEdit_old->setFocus(); return; } if (ui->lineEdit_new->text().length() < 8) { qDebug() << "Kennwort muß mindestens 8 Stellen haben"; ui->lineEdit_new->setText(""); ui->lineEdit_new2->setText(""); ui->lineEdit_new->setFocus(); return; } if (QString::compare(ui->lineEdit_new->text(), ui->lineEdit_new2->text()) != 0) { qDebug() << "Eingaben für neues Kennwort stimmen nicht überein"; ui->lineEdit_new->setText(""); ui->lineEdit_new2->setText(""); ui->lineEdit_new->setFocus(); return; } qry.clear(); //Aktualisierung durchführen qry.prepare("SET PASSWORD = PASSWORD(:pass)"); qry.bindValue(":pass", ui->lineEdit_new->text()); qDebug() << "New: " << ui->lineEdit_new->text(); int res = qry.exec(); // qry.result(); if (!res) { qDebug() << "Error: " << qry.lastError().text(); this->done(QDialog::Rejected); return; } this->done(QDialog::Accepted); }