mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 20:48:52 +03:00
parent
f6c279f6f2
commit
735d508a29
3 changed files with 30 additions and 43 deletions
|
@ -48,7 +48,7 @@ protected:
|
|||
|
||||
public slots:
|
||||
// Displays errors produced during the login.
|
||||
void loginError(QString error_message);
|
||||
void loginError(QString msg) { error_label_->setText(msg); }
|
||||
|
||||
private slots:
|
||||
// Callback for the back button.
|
||||
|
|
|
@ -151,40 +151,23 @@ LoginPage::LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent)
|
|||
connect(serverInput_, SIGNAL(editingFinished()), this, SLOT(onServerAddressEntered()));
|
||||
}
|
||||
|
||||
void
|
||||
LoginPage::loginError(QString error)
|
||||
{
|
||||
error_label_->setText(error);
|
||||
}
|
||||
|
||||
bool
|
||||
LoginPage::isMatrixIdValid()
|
||||
{
|
||||
auto matrix_id = matrixid_input_->text();
|
||||
|
||||
try {
|
||||
parse<User>(matrix_id.toStdString());
|
||||
return true;
|
||||
} catch (const std::exception &e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
LoginPage::onMatrixIdEntered()
|
||||
{
|
||||
error_label_->setText("");
|
||||
|
||||
if (!isMatrixIdValid()) {
|
||||
loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org");
|
||||
return;
|
||||
} else if (password_input_->text().isEmpty()) {
|
||||
loginError(tr("Empty password"));
|
||||
User user;
|
||||
|
||||
try {
|
||||
user = parse<User>(matrixid_input_->text().toStdString());
|
||||
} catch (const std::exception &e) {
|
||||
return loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org");
|
||||
}
|
||||
|
||||
QString homeServer = matrixid_input_->text().split(":").at(1);
|
||||
if (password_input_->text().isEmpty())
|
||||
return loginError(tr("Empty password"));
|
||||
|
||||
QString homeServer = QString::fromStdString(user.hostname());
|
||||
if (homeServer != inferredServerAddress_) {
|
||||
serverInput_->hide();
|
||||
serverLayout_->removeWidget(errorIcon_);
|
||||
|
@ -251,17 +234,21 @@ LoginPage::onLoginButtonClicked()
|
|||
{
|
||||
error_label_->setText("");
|
||||
|
||||
if (!isMatrixIdValid()) {
|
||||
loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org");
|
||||
} else if (password_input_->text().isEmpty()) {
|
||||
loginError("Empty password");
|
||||
} else {
|
||||
QString user = matrixid_input_->text().split(":").at(0).split("@").at(1);
|
||||
QString password = password_input_->text();
|
||||
client_->setServer(serverInput_->text());
|
||||
client_->login(user, password);
|
||||
emit loggingIn();
|
||||
User user;
|
||||
|
||||
try {
|
||||
user = parse<User>(matrixid_input_->text().toStdString());
|
||||
} catch (const std::exception &e) {
|
||||
return loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org");
|
||||
}
|
||||
|
||||
if (password_input_->text().isEmpty())
|
||||
return loginError(tr("Empty password"));
|
||||
|
||||
client_->setServer(serverInput_->text());
|
||||
client_->login(QString::fromStdString(user.localpart()), password_input_->text());
|
||||
|
||||
emit loggingIn();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -123,11 +123,6 @@ MatrixClient::login(const QString &username, const QString &password) noexcept
|
|||
int status_code =
|
||||
reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
|
||||
if (reply->error()) {
|
||||
emit loginError(reply->errorString());
|
||||
return;
|
||||
}
|
||||
|
||||
if (status_code == 403) {
|
||||
emit loginError(tr("Wrong username or password"));
|
||||
return;
|
||||
|
@ -144,6 +139,11 @@ MatrixClient::login(const QString &username, const QString &password) noexcept
|
|||
return;
|
||||
}
|
||||
|
||||
if (reply->error()) {
|
||||
emit loginError(reply->errorString());
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
mtx::responses::Login login =
|
||||
nlohmann::json::parse(reply->readAll().data());
|
||||
|
|
Loading…
Reference in a new issue