You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.8 KiB
96 lines
2.8 KiB
/* Diese Datei ist Teil von pmv-client <https://git.piratenpartei-sh.de>
|
|
*
|
|
* 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 <https://www.gnu.org/licenses/>.
|
|
*
|
|
* SPDX-License-Identifier: GPL-3.0-only
|
|
*/
|
|
|
|
#include <QSqlDatabase>
|
|
#include <QSqlQuery>
|
|
#include <QDebug>
|
|
#include <QSqlError>
|
|
|
|
#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);
|
|
}
|
|
|