mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
146 lines
3.7 KiB
C++
146 lines
3.7 KiB
C++
#include "dialogeditinstructor.h"
|
|
#include "ui_dialogeditinstructor.h"
|
|
#include "hashtools.h"
|
|
#include <QPushButton>
|
|
#include <QRegExpValidator>
|
|
|
|
DialogEditInstructor::DialogEditInstructor(bool adminMode, QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::DialogEditInstructor),
|
|
instructorInput(),
|
|
flNeedHashPassword(false),
|
|
adminMode(adminMode)
|
|
{
|
|
ui->setupUi(this);
|
|
verify();
|
|
|
|
ui->editName->setProperty("mandatoryField", true);
|
|
ui->editLogin->setProperty("mandatoryField", true);
|
|
ui->editPassword->setProperty("mandatoryField", true);
|
|
|
|
ui->btnViewPassword->setObjectName("btnViewPassword");
|
|
ui->btnChangePassword->setObjectName("btnChangePassword");
|
|
|
|
ui->editLogin->setValidator(new QRegExpValidator(QRegExp("[A-Za-z\\d]+"), this));
|
|
|
|
ui->editPassword->setEnabled(false);
|
|
//#ifndef PROJECT_TYPE_DEBUG
|
|
ui->editPassword->setEchoMode(QLineEdit::EchoMode::Password);
|
|
//#endif
|
|
|
|
ui->btnViewPassword->setEnabled(false);
|
|
ui->btnChangePassword->setEnabled(false);
|
|
|
|
ui->btnOK->setEnabled(false);
|
|
}
|
|
|
|
DialogEditInstructor::~DialogEditInstructor()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void DialogEditInstructor::setInstructor(Instructor instructor)
|
|
{
|
|
instructorInput = instructor;
|
|
|
|
ui->editName ->setText(instructor.getName());
|
|
ui->editLogin->setText(instructor.getLogin());
|
|
ui->editPassword->setText(instructor.getPassword());
|
|
|
|
ui->checkIsAdmin->setChecked(instructor.getIsAdmin());
|
|
ui->checkArchived->setChecked(instructor.getArchived());
|
|
ui->checkLoggedIn->setChecked(instructor.getLoggedIn());
|
|
|
|
if(instructor.getIsAdmin())
|
|
ui->editName->setEnabled(false);
|
|
else
|
|
ui->editName->setEnabled(true);
|
|
|
|
if(instructor.getNeedSetPassword())
|
|
{
|
|
ui->editPassword->setEnabled(true);
|
|
ui->btnViewPassword->setEnabled(true);
|
|
}
|
|
else
|
|
{
|
|
if(adminMode)
|
|
ui->btnChangePassword->setEnabled(true);
|
|
}
|
|
|
|
ui->btnOK->setEnabled(false);
|
|
}
|
|
|
|
Instructor DialogEditInstructor::getInstructor()
|
|
{
|
|
Instructor instructor = instructorInput;
|
|
|
|
instructor.setName(ui->editName->text());
|
|
instructor.setLogin(ui->editLogin->text());
|
|
|
|
if(flNeedHashPassword)
|
|
{
|
|
QString psw = ui->editPassword->text();
|
|
psw = HashTools::hashingMD5string(psw);
|
|
instructor.setPassword(psw);
|
|
}
|
|
else
|
|
instructor.setPassword(ui->editPassword->text());
|
|
|
|
instructor.setIsAdmin(ui->checkIsAdmin->isChecked());
|
|
instructor.setArchived(ui->checkArchived->isChecked());
|
|
instructor.setLoggedIn(ui->checkLoggedIn->isChecked());
|
|
|
|
return instructor;
|
|
}
|
|
|
|
void DialogEditInstructor::on_editName_textChanged(const QString &arg1)
|
|
{
|
|
verify();
|
|
}
|
|
|
|
void DialogEditInstructor::on_editLogin_textChanged(const QString &arg1)
|
|
{
|
|
verify();
|
|
}
|
|
|
|
void DialogEditInstructor::on_editPassword_textChanged(const QString &arg1)
|
|
{
|
|
verify();
|
|
}
|
|
|
|
void DialogEditInstructor::verify()
|
|
{
|
|
if(ui->editName->text().trimmed() == QStringLiteral("") ||
|
|
ui->editLogin->text().trimmed() == QStringLiteral("") ||
|
|
ui->editPassword->text().trimmed() == QStringLiteral(""))
|
|
ui->btnOK->setEnabled(false);
|
|
else
|
|
ui->btnOK->setEnabled(true);
|
|
}
|
|
|
|
void DialogEditInstructor::on_btnOK_clicked()
|
|
{
|
|
this->accept();
|
|
}
|
|
|
|
void DialogEditInstructor::on_btnViewPassword_pressed()
|
|
{
|
|
ui->editPassword->setEchoMode(QLineEdit::EchoMode::Normal);
|
|
}
|
|
|
|
void DialogEditInstructor::on_btnViewPassword_released()
|
|
{
|
|
ui->editPassword->setEchoMode(QLineEdit::EchoMode::Password);
|
|
}
|
|
|
|
void DialogEditInstructor::on_btnChangePassword_clicked()
|
|
{
|
|
ui->editPassword->setEnabled(true);
|
|
ui->btnViewPassword->setEnabled(true);
|
|
|
|
ui->editPassword->setText("");
|
|
flNeedHashPassword = true;
|
|
|
|
ui->editPassword->setFocus();
|
|
}
|