aboutsummaryrefslogtreecommitdiff
path: root/src/newidentitiydialog.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-11 02:17:32 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-11 02:17:32 +0200
commit2779c61e83491d1d798f3f494aa890e3f586245a (patch)
treec09e6e77efd85465a331a65f5f8d73dd450d6b4f /src/newidentitiydialog.cpp
parentab3e5ad5f25862985c17ba557163a1902b54747f (diff)
downloadkristall-2779c61e83491d1d798f3f494aa890e3f586245a.tar.gz
Adds first draft of client certificate management.
Diffstat (limited to 'src/newidentitiydialog.cpp')
-rw-r--r--src/newidentitiydialog.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/newidentitiydialog.cpp b/src/newidentitiydialog.cpp
new file mode 100644
index 0000000..5419d74
--- /dev/null
+++ b/src/newidentitiydialog.cpp
@@ -0,0 +1,74 @@
+#include "newidentitiydialog.hpp"
+#include "ui_newidentitiydialog.h"
+
+#include "certificatehelper.hpp"
+#include "kristall.hpp"
+
+#include <QPushButton>
+#include <QDebug>
+
+NewIdentitiyDialog::NewIdentitiyDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::NewIdentitiyDialog)
+{
+ ui->setupUi(this);
+
+ ui->display_name->setText("Unnamed");
+ ui->common_name->setText("Unnamed");
+ ui->expiration_date->setDate(QDate::currentDate().addYears(1));
+ ui->expiration_date->setTime(QTime(12, 00));
+
+ ui->group->clear();
+ for(auto group_name : global_identities.groups())
+ {
+ ui->group->addItem(group_name);
+ }
+}
+
+NewIdentitiyDialog::~NewIdentitiyDialog()
+{
+ delete ui;
+}
+
+CryptoIdentity NewIdentitiyDialog::createIdentity() const
+{
+ auto id = CertificateHelper::createNewIdentity(
+ this->ui->common_name->text(),
+ this->ui->expiration_date->dateTime()
+ );
+ id.display_name = this->ui->display_name->text();
+ return id;
+}
+
+QString NewIdentitiyDialog::groupName() const
+{
+ return this->ui->group->currentText();
+}
+
+void NewIdentitiyDialog::updateUI()
+{
+ bool is_ok = true;
+
+ is_ok &= (not this->ui->group->currentText().isEmpty());
+ is_ok &= (not this->ui->common_name->text().isEmpty());
+ is_ok &= (not this->ui->display_name->text().isEmpty());
+ is_ok &= (this->ui->expiration_date->dateTime() > QDateTime::currentDateTime());
+
+ this->ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(is_ok);
+}
+
+void NewIdentitiyDialog::on_group_editTextChanged(const QString &arg1)
+{
+ qDebug() << arg1;
+ this->updateUI();
+}
+
+void NewIdentitiyDialog::on_display_name_textChanged(const QString &arg1)
+{
+ this->updateUI();
+}
+
+void NewIdentitiyDialog::on_common_name_textChanged(const QString &arg1)
+{
+ this->updateUI();
+}