diff --git a/InstructorsAndTrainees/dialognewpassword.cpp b/InstructorsAndTrainees/dialognewpassword.cpp new file mode 100644 index 0000000..7f483df --- /dev/null +++ b/InstructorsAndTrainees/dialognewpassword.cpp @@ -0,0 +1,14 @@ +#include "dialognewpassword.h" +#include "ui_dialognewpassword.h" + +DialogNewPassword::DialogNewPassword(QWidget *parent) : + QDialog(parent), + ui(new Ui::DialogNewPassword) +{ + ui->setupUi(this); +} + +DialogNewPassword::~DialogNewPassword() +{ + delete ui; +} diff --git a/InstructorsAndTrainees/dialognewpassword.h b/InstructorsAndTrainees/dialognewpassword.h new file mode 100644 index 0000000..9ab267b --- /dev/null +++ b/InstructorsAndTrainees/dialognewpassword.h @@ -0,0 +1,22 @@ +#ifndef DIALOGNEWPASSWORD_H +#define DIALOGNEWPASSWORD_H + +#include + +namespace Ui { +class DialogNewPassword; +} + +class DialogNewPassword : public QDialog +{ + Q_OBJECT + +public: + explicit DialogNewPassword(QWidget *parent = nullptr); + ~DialogNewPassword(); + +private: + Ui::DialogNewPassword *ui; +}; + +#endif // DIALOGNEWPASSWORD_H diff --git a/InstructorsAndTrainees/dialognewpassword.ui b/InstructorsAndTrainees/dialognewpassword.ui new file mode 100644 index 0000000..8270f84 --- /dev/null +++ b/InstructorsAndTrainees/dialognewpassword.ui @@ -0,0 +1,38 @@ + + + DialogNewPassword + + + + 0 + 0 + 277 + 95 + + + + Dialog + + + + + + + + + + + + + + Save + + + + + + + + + + diff --git a/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp b/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp index 7019fb4..7fe5e2c 100644 --- a/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp +++ b/InstructorsAndTrainees/instructors/dialogeditinstructor.cpp @@ -1,12 +1,14 @@ #include "dialogeditinstructor.h" #include "ui_dialogeditinstructor.h" +#include "hashtools.h" #include #include DialogEditInstructor::DialogEditInstructor(QWidget *parent) : QDialog(parent), ui(new Ui::DialogEditInstructor), - instructorInput() + instructorInput(), + flNeedHashPassword(false) { ui->setupUi(this); verify(); @@ -16,15 +18,17 @@ DialogEditInstructor::DialogEditInstructor(QWidget *parent) : 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 +#ifndef PROJECT_TYPE_DEBUG ui->editPassword->setEchoMode(QLineEdit::EchoMode::Password); -//#endif +#endif ui->btnViewPassword->setEnabled(false); + ui->btnChangePassword->setEnabled(false); ui->btnOK->setEnabled(false); } @@ -56,8 +60,8 @@ void DialogEditInstructor::setInstructor(Instructor instructor) ui->editPassword->setEnabled(true); ui->btnViewPassword->setEnabled(true); } - //else - //ui->editPassword->setText("*****"); + else + ui->btnChangePassword->setEnabled(true); ui->btnOK->setEnabled(false); } @@ -68,7 +72,15 @@ Instructor DialogEditInstructor::getInstructor() instructor.setName(ui->editName->text()); instructor.setLogin(ui->editLogin->text()); - instructor.setPassword(ui->editPassword->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()); @@ -116,3 +128,12 @@ 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; +} diff --git a/InstructorsAndTrainees/instructors/dialogeditinstructor.h b/InstructorsAndTrainees/instructors/dialogeditinstructor.h index 84f3aef..234e795 100644 --- a/InstructorsAndTrainees/instructors/dialogeditinstructor.h +++ b/InstructorsAndTrainees/instructors/dialogeditinstructor.h @@ -33,6 +33,8 @@ private slots: void on_btnViewPassword_released(); + void on_btnChangePassword_clicked(); + private: void verify(); @@ -40,6 +42,8 @@ private: Ui::DialogEditInstructor *ui; Instructor instructorInput; + + bool flNeedHashPassword; }; #endif // DIALOGEDITINSTRUCTOR_H diff --git a/InstructorsAndTrainees/instructors/dialogeditinstructor.ui b/InstructorsAndTrainees/instructors/dialogeditinstructor.ui index a5b9fdf..b0aaa59 100644 --- a/InstructorsAndTrainees/instructors/dialogeditinstructor.ui +++ b/InstructorsAndTrainees/instructors/dialogeditinstructor.ui @@ -6,7 +6,7 @@ 0 0 - 300 + 470 286 @@ -98,6 +98,17 @@ + + + + ... + + + + :/resources/icons/exchange.png:/resources/icons/exchange.png + + + diff --git a/InstructorsAndTrainees/resources.qrc b/InstructorsAndTrainees/resources.qrc index cbcec0f..198a0c1 100644 --- a/InstructorsAndTrainees/resources.qrc +++ b/InstructorsAndTrainees/resources.qrc @@ -54,5 +54,6 @@ resources/icons/info.png resources/icons/personalCard.png resources/icons/eye.png + resources/icons/exchange.png diff --git a/InstructorsAndTrainees/resources/css/styleSheetMain.css b/InstructorsAndTrainees/resources/css/styleSheetMain.css index 8f09dc7..a1dbcdb 100644 --- a/InstructorsAndTrainees/resources/css/styleSheetMain.css +++ b/InstructorsAndTrainees/resources/css/styleSheetMain.css @@ -87,6 +87,13 @@ QToolButton#btnAssignTask { width: 80px; height: 55px; } + +QToolButton#btnViewPassword, QToolButton#btnChangePassword { + min-width: 18px; + width: 18px; + height: 18px; +} + QPushButton:flat, QToolButton:flat { border: none; /* no border for a flat push button */ } @@ -286,7 +293,6 @@ QTextEdit#editMsg { height: 65px; /**/ background: #ddeeff; background: #ffffff; - } QTextEdit#MsgWidgetEditTextLocal { /*background: tlightgreen;*/ @@ -337,6 +343,12 @@ QLabel#MessangerWidgetLblLoggedIn { } + +QLabel#PersonalCard_lblName { + font-size: 16pt; +} + + QWidget#widgetControl { background: #E0E0E0; } diff --git a/InstructorsAndTrainees/resources/icons/exchange.png b/InstructorsAndTrainees/resources/icons/exchange.png new file mode 100644 index 0000000..5293068 Binary files /dev/null and b/InstructorsAndTrainees/resources/icons/exchange.png differ diff --git a/InstructorsAndTrainees/trainees/dialogedittrainee.cpp b/InstructorsAndTrainees/trainees/dialogedittrainee.cpp index e408bc6..19223ab 100644 --- a/InstructorsAndTrainees/trainees/dialogedittrainee.cpp +++ b/InstructorsAndTrainees/trainees/dialogedittrainee.cpp @@ -1,12 +1,14 @@ #include "dialogedittrainee.h" #include "ui_dialogedittrainee.h" +#include "hashtools.h" #include #include DialogEditTrainee::DialogEditTrainee(QWidget *parent) : QDialog(parent), ui(new Ui::DialogEditTrainee), - traineeInput() + traineeInput(), + flNeedHashPassword(false) { ui->setupUi(this); verify(); @@ -16,15 +18,17 @@ DialogEditTrainee::DialogEditTrainee(QWidget *parent) : 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 +#ifndef PROJECT_TYPE_DEBUG ui->editPassword->setEchoMode(QLineEdit::EchoMode::Password); -//#endif +#endif ui->btnViewPassword->setEnabled(false); + ui->btnChangePassword->setEnabled(false); ui->btnOK->setEnabled(false); } @@ -50,8 +54,8 @@ void DialogEditTrainee::setTrainee(Trainee trainee) ui->editPassword->setEnabled(true); ui->btnViewPassword->setEnabled(true); } - //else - //ui->editPassword->setText("*****"); + else + ui->btnChangePassword->setEnabled(true); ui->btnOK->setEnabled(false); } @@ -62,7 +66,15 @@ Trainee DialogEditTrainee::getTrainee() trainee.setName(ui->editName->text()); trainee.setLogin(ui->editLogin->text()); - trainee.setPassword(ui->editPassword->text()); + + if(flNeedHashPassword) + { + QString psw = ui->editPassword->text(); + psw = HashTools::hashingMD5string(psw); + trainee.setPassword(psw); + } + else + trainee.setPassword(ui->editPassword->text()); trainee.setArchived(ui->checkArchived->isChecked()); trainee.setLoggedIn(ui->checkLoggedIn->isChecked()); @@ -109,3 +121,12 @@ void DialogEditTrainee::on_btnViewPassword_released() { ui->editPassword->setEchoMode(QLineEdit::EchoMode::Password); } + +void DialogEditTrainee::on_btnChangePassword_clicked() +{ + ui->editPassword->setEnabled(true); + ui->btnViewPassword->setEnabled(true); + + ui->editPassword->setText(""); + flNeedHashPassword = true; +} diff --git a/InstructorsAndTrainees/trainees/dialogedittrainee.h b/InstructorsAndTrainees/trainees/dialogedittrainee.h index 9a644fa..3d74133 100644 --- a/InstructorsAndTrainees/trainees/dialogedittrainee.h +++ b/InstructorsAndTrainees/trainees/dialogedittrainee.h @@ -32,6 +32,8 @@ private slots: void on_btnViewPassword_released(); + void on_btnChangePassword_clicked(); + private: void verify(); @@ -39,6 +41,8 @@ private: Ui::DialogEditTrainee *ui; Trainee traineeInput; + + bool flNeedHashPassword; }; #endif // DIALOGEDITTRAINEE_H diff --git a/InstructorsAndTrainees/trainees/dialogedittrainee.ui b/InstructorsAndTrainees/trainees/dialogedittrainee.ui index 3d5c315..b308078 100644 --- a/InstructorsAndTrainees/trainees/dialogedittrainee.ui +++ b/InstructorsAndTrainees/trainees/dialogedittrainee.ui @@ -6,7 +6,7 @@ 0 0 - 300 + 470 252 @@ -106,6 +106,17 @@ + + + + ... + + + + :/resources/icons/exchange.png:/resources/icons/exchange.png + + +