Mitgliederverwaltung für einen Landesverband, Clientkomponente
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.
 
 
 
pmv-client/passdialog.cpp

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);
}