WUT_Computer_Science/EGUI/lab1/login.cpp

91 lines
2.2 KiB
C++
Raw Normal View History

2022-04-03 21:23:02 +02:00
#include "login.h"
#include "ui_login.h"
2022-04-04 21:22:50 +02:00
#include "blogsview.h"
2022-04-03 21:23:02 +02:00
#include <QFileDialog>
#include <QMessageBox>
#include <iostream>
#include <QJsonObject>
#include <QJsonDocument>
#include <QTextStream>
login::login(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::login)
{
ui->setupUi(this);
}
login::~login()
{
delete ui;
}
void login::thisIDDoesNotExist()
{
QMessageBox idNotExisting;
idNotExisting.setText("THIS ID DOES NOT EXIST!");
idNotExisting.exec();
}
void login::wrongPassword()
{
QMessageBox wrongPassword;
wrongPassword.setText("WRONG PASSWORD!");
wrongPassword.exec();
}
2022-04-05 14:07:24 +02:00
void login::loginSuccessful(const QString &id, const QString &blogId)
2022-04-04 21:22:50 +02:00
{
2022-04-05 00:26:36 +02:00
qDebug() << "login id: " << id;
2022-04-04 21:22:50 +02:00
blogsView *b = new blogsView();
2022-04-05 00:26:36 +02:00
b -> setUserId(id);
2022-04-05 14:07:24 +02:00
b -> setBlogId(blogId);
2022-04-04 21:22:50 +02:00
b -> show();
hide();
}
2022-04-03 21:23:02 +02:00
2022-04-05 14:07:24 +02:00
void login::loginUser(QJsonObject &users, QJsonObject &blogs)
2022-04-03 21:23:02 +02:00
{
QString id = ui->inputLoginID_2->text();
if(users.find(id) != users.end())
{
QJsonValue user = users.take(id);
QString enteredPassword = ui->inputPassword->text();
2022-04-05 14:07:24 +02:00
QString currentBlogId;
2022-04-03 21:23:02 +02:00
if (user["password"] == enteredPassword)
{
2022-04-05 14:07:24 +02:00
QStringList keys = blogs.keys();
for(int i = 0; i <= keys.size(); i++)
{
QJsonObject currentBlog = blogs[keys.at(i)].toObject();
if(currentBlog["ownerId"] == id)
{
currentBlogId = (currentBlog.take("blogId")).toString();
break;
}
}
qDebug() << "Current blog id: " << currentBlogId;
2022-04-06 01:06:01 +02:00
loginSuccessful(id, currentBlogId);
2022-04-03 21:23:02 +02:00
}else wrongPassword();
2022-04-06 01:06:01 +02:00
}else thisIDDoesNotExist();
2022-04-03 21:23:02 +02:00
}
2022-04-05 14:07:24 +02:00
QJsonObject login::readUserJsonFile(const QString &filename)
2022-04-03 21:23:02 +02:00
{
2022-04-05 14:07:24 +02:00
QFile file(filename);
2022-04-06 01:06:01 +02:00
file.open(QIODevice::ReadWrite);
2022-04-03 21:23:02 +02:00
QByteArray bytes = file.readAll();
file.close();
QJsonDocument document = QJsonDocument::fromJson( bytes );
return document.object();
}
void login::on_loginButton_clicked()
{
2022-04-05 14:07:24 +02:00
QJsonObject users = readUserJsonFile("user.json");
QJsonObject blogs = readUserJsonFile("blogs.json");
loginUser(users, blogs);
2022-04-03 21:23:02 +02:00
}