From ed5f760bf4c4126d0f5c64bb4a0cba75c963fb9b Mon Sep 17 00:00:00 2001 From: Keshav Bhatt Date: Wed, 30 Mar 2022 12:59:51 +0530 Subject: fix: improve logout flow, on change password --- src/mainwindow.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b9ec4f5..1893448 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -199,6 +199,42 @@ void MainWindow::handleCookieAdded(const QNetworkCookie &cookie) { qDebug() << cookie.toRawForm() << "\n\n\n"; } +void MainWindow::forceLogOut() { + if (webEngine && webEngine->page()) { + webEngine->page()->runJavaScript( + "window.localStorage.clear();", + [=](const QVariant &result) { qDebug() << result; }); + } +} + +bool MainWindow::isLoggedIn(){ + static bool loggedIn = false; + if (webEngine && webEngine->page()) { + webEngine->page()->runJavaScript( + "window.localStorage.getItem('WAToken2')", + [=](const QVariant &result) { qDebug() <page()) { + webEngine->page()->runJavaScript( + "document.querySelector(\"span[data-testid|='menu']\").click();" + "document.querySelector(\"#side > header > div > div > span > div > " + "span > div > ul > li:nth-child(5) > div\").click()", + [=](const QVariant &result) { qDebug() << Q_FUNC_INFO << result; }); + } +} + void MainWindow::init_settingWidget() { if (settingsWidget == nullptr) { settingsWidget = new SettingsWidget( @@ -597,9 +633,17 @@ void MainWindow::init_lock() { void MainWindow::change_lock_password() { settings.remove("asdfg"); settingsWidget->appLockSetChecked(false); - settingsWidget->clearAllData(); - doAppReload(); - init_lock(); + + tryLogOut(); + QTimer::singleShot(2000, this, [=]() { + if(isLoggedIn()){ + forceLogOut(); + doAppReload(); + } + init_lock(); + }); + + } // check window state and set tray menus -- cgit v1.2.3