From 8929cf73886ee958b865c7e37c3591cac396dc2b Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 16 Jun 2021 16:27:12 +0200 Subject: [PATCH 01/10] add new json class, remove files I have missed to delete --- .../cpp/JSONInterface/JsonResetPassword.cpp | 0 .../src/cpp/JSONInterface/JsonResetPassword.h | 0 .../SingletonManager/HederaTaskManager.cpp | 17 -------------- .../cpp/SingletonManager/HederaTaskManager.h | 23 ------------------- 4 files changed, 40 deletions(-) create mode 100644 login_server/src/cpp/JSONInterface/JsonResetPassword.cpp create mode 100644 login_server/src/cpp/JSONInterface/JsonResetPassword.h delete mode 100644 login_server/src/cpp/SingletonManager/HederaTaskManager.cpp delete mode 100644 login_server/src/cpp/SingletonManager/HederaTaskManager.h diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.h b/login_server/src/cpp/JSONInterface/JsonResetPassword.h new file mode 100644 index 000000000..e69de29bb diff --git a/login_server/src/cpp/SingletonManager/HederaTaskManager.cpp b/login_server/src/cpp/SingletonManager/HederaTaskManager.cpp deleted file mode 100644 index f54ca58f3..000000000 --- a/login_server/src/cpp/SingletonManager/HederaTaskManager.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "HederaTaskManager.h" - -HederaTaskManager* HederaTaskManager::getInstance() -{ - static HederaTaskManager one; - return &one; -} - -HederaTaskManager::HederaTaskManager() -{ - -} - -HederaTaskManager::~HederaTaskManager() -{ - -} \ No newline at end of file diff --git a/login_server/src/cpp/SingletonManager/HederaTaskManager.h b/login_server/src/cpp/SingletonManager/HederaTaskManager.h deleted file mode 100644 index 361ace551..000000000 --- a/login_server/src/cpp/SingletonManager/HederaTaskManager.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __GRADIDO_LOGIN_SINGLETON_MANAGER_HEDERA_TASK_MANAGER_H -#define __GRADIDO_LOGIN_SINGLETON_MANAGER_HEDERA_TASK_MANAGER_H - -/*! - * @author: Dario Rekowski - * - * @date: 11.09.2020 - * - * @brief: Manage Hedera Task, waiting on Consensus for Hedera Transactions - * -*/ - -class HederaTaskManager -{ -public: - ~HederaTaskManager(); - - static HederaTaskManager* getInstance(); -protected: - HederaTaskManager(); -}; - -#endif //__GRADIDO_LOGIN_SINGLETON_MANAGER_HEDERA_TASK_MANAGER_H \ No newline at end of file From 8190dcc6af12bcc6cbb805cde911ae5e0fba5d0e Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 16 Jun 2021 17:55:48 +0200 Subject: [PATCH 02/10] ddd password reset as separat json function --- .../cpp/JSONInterface/JsonRequestHandler.cpp | 13 +++++ .../JsonRequestHandlerFactory.cpp | 4 ++ .../cpp/JSONInterface/JsonResetPassword.cpp | 50 +++++++++++++++++++ .../src/cpp/JSONInterface/JsonResetPassword.h | 20 ++++++++ 4 files changed, 87 insertions(+) diff --git a/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp b/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp index a577155b9..feab7043b 100644 --- a/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp +++ b/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp @@ -227,6 +227,19 @@ Poco::JSON::Object* JsonRequestHandler::checkAndLoadSession(Poco::Dynamic::Var p return stateError("error parsing query params, Poco Error", ex.displayText()); } } + else if (params.type() == typeid(Poco::JSON::Object::Ptr)) { + try { + Poco::JSON::Object::Ptr paramJsonObject = params.extract(); + auto session_id_obj = paramJsonObject->get("session_id"); + if (session_id_obj.isEmpty()) { + return stateError("missing session_id"); + } + session_id_obj.convert(session_id); + } + catch (Poco::Exception& ex) { + return stateError("Poco Exception by reading session_id", ex.what()); + } + } if (!session_id) { return stateError("empty session id"); diff --git a/login_server/src/cpp/JSONInterface/JsonRequestHandlerFactory.cpp b/login_server/src/cpp/JSONInterface/JsonRequestHandlerFactory.cpp index b50fc7957..744ac710e 100644 --- a/login_server/src/cpp/JSONInterface/JsonRequestHandlerFactory.cpp +++ b/login_server/src/cpp/JSONInterface/JsonRequestHandlerFactory.cpp @@ -19,6 +19,7 @@ #include "JsonLoginViaEmailVerificationCode.h" #include "JsonLogout.h" #include "JsonNetworkInfos.h" +#include "JsonResetPassword.h" #include "JsonSendEmail.h" #include "JsonAdminEmailVerificationResend.h" #include "JsonGetUserInfos.h" @@ -114,6 +115,9 @@ Poco::Net::HTTPRequestHandler* JsonRequestHandlerFactory::createRequestHandler(c else if (url_first_part == "/sendEmail") { return new JsonSendEmail; } + else if (url_first_part == "/resetPassword") { + return new JsonResetPassword; + } else if (url_first_part == "/logout") { return new JsonLogout(client_host); } diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp index e69de29bb..2b0208681 100644 --- a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp +++ b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp @@ -0,0 +1,50 @@ +#include "JsonResetPassword.h" + +#include "SingletonManager/SessionManager.h" +#include "SingletonManager/SingletonTaskObserver.h" + +Poco::JSON::Object* JsonResetPassword::handle(Poco::Dynamic::Var params) +{ + auto result_session_check = checkAndLoadSession(params, true); + if (result_session_check) { + return result_session_check; + } + + std::string password; + // if is json object + if (params.type() == typeid(Poco::JSON::Object::Ptr)) { + Poco::JSON::Object::Ptr paramJsonObject = params.extract(); + try { + auto password_obj = paramJsonObject->get("password"); + if (password_obj.isEmpty()) { + return stateError("password missing"); + } + } + catch (Poco::Exception& ex) { + return stateError("error parsing json", ex.what()); + } + } + auto sm = SessionManager::getInstance(); + NotificationList errors; + if (!sm->checkPwdValidation(password, &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { + return stateError("password isn't valid", &errors); + } + auto user = mSession->getNewUser(); + if (user.isNull() || user->getModel().isNull()) { + return stateError("invalid user"); + } + + auto observer = SingletonTaskObserver::getInstance(); + auto email_hash = observer->makeHash(user->getModel()->getEmail()); + + if (observer->getTaskCount(email_hash, TASK_OBSERVER_PASSWORD_CREATION)) { + return stateError("password encryption is already running"); + } + + user->setNewPassword(password); + KeyPairEd25519* key_pair = NULL; + if (!user->tryLoadPassphraseUserBackup(&key_pair)) { + user->setGradidoKeyPair(key_pair); + } + return stateSuccess(); +} \ No newline at end of file diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.h b/login_server/src/cpp/JSONInterface/JsonResetPassword.h index e69de29bb..505622026 100644 --- a/login_server/src/cpp/JSONInterface/JsonResetPassword.h +++ b/login_server/src/cpp/JSONInterface/JsonResetPassword.h @@ -0,0 +1,20 @@ +#ifndef __JSON_INTERFACE_JSON_RESET_PASSWORD_ +#define __JSON_INTERFACE_JSON_RESET_PASSWORD_ + +#include "JsonRequestHandler.h" + +/*! +* @author Dario Rekowski +* @date 2021-06-16 +* @brief reset password, if user has forgetten his password +* +*/ + +class JsonResetPassword : public JsonRequestHandler +{ +public: + Poco::JSON::Object* handle(Poco::Dynamic::Var params); + +}; + +#endif // __JSON_INTERFACE_JSON_RESET_PASSWORD_ \ No newline at end of file From fdf70505f602da2465cd222d3663189e3a9ee592 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 16 Jun 2021 17:58:17 +0200 Subject: [PATCH 03/10] add docu --- docu/login_server.api.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docu/login_server.api.md b/docu/login_server.api.md index ab9157edf..3682f310e 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -505,6 +505,29 @@ The link can be modified in the Login-Server config: For the docker build, you can find the config here: `configs/login_server/grd_login.properties` +### Request +`POST http://localhost/login_api/resetPassword` + +with: + +```json +{ + "session_id": 12452361, + "password":"hasu/282?sjS" +} +``` + +### Response +In case of success returns: + +```json +{ + "state":"success" +} +``` + + + ## Check Running Transactions / password encryption Check if transactions on login-server for user are processed From cba03dba09aacd7fb23ca3e806ba29cfe158028d Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 17 Jun 2021 11:48:05 +0200 Subject: [PATCH 04/10] add test, fix errors --- .../cpp/JSONInterface/JsonResetPassword.cpp | 3 +- .../JSONInterface/TestJsonResetPassword.cpp | 95 +++++++++++++++++++ .../JSONInterface/TestJsonResetPassword.h | 20 ++++ 3 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp create mode 100644 login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.h diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp index 2b0208681..ac1606ab5 100644 --- a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp +++ b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp @@ -19,6 +19,7 @@ Poco::JSON::Object* JsonResetPassword::handle(Poco::Dynamic::Var params) if (password_obj.isEmpty()) { return stateError("password missing"); } + password_obj.convert(password); } catch (Poco::Exception& ex) { return stateError("error parsing json", ex.what()); @@ -37,7 +38,7 @@ Poco::JSON::Object* JsonResetPassword::handle(Poco::Dynamic::Var params) auto observer = SingletonTaskObserver::getInstance(); auto email_hash = observer->makeHash(user->getModel()->getEmail()); - if (observer->getTaskCount(email_hash, TASK_OBSERVER_PASSWORD_CREATION)) { + if (observer->getTaskCount(email_hash, TASK_OBSERVER_PASSWORD_CREATION) > 0) { return stateError("password encryption is already running"); } diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp new file mode 100644 index 000000000..30218365c --- /dev/null +++ b/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp @@ -0,0 +1,95 @@ +#include "gtest/gtest.h" + +#include "JSONInterface/JsonResetPassword.h" +#include "TestJsonResetPassword.h" +#include "lib/Profiler.h" + + +void TestJsonResetPassword::SetUp() +{ + auto sm = SessionManager::getInstance(); + //sm->init(); + mUserSession = sm->getNewSession(); + auto user = controller::User::create(); + user->load("Nikola_Tesla@email.de"); + mUserSession->setUser(user); +} + +void TestJsonResetPassword::TearDown() +{ + auto sm = SessionManager::getInstance(); + if (!mUserSession) { + sm->releaseSession(mUserSession); + } +} + + +TEST_F(TestJsonResetPassword, WithoutSession) +{ + JsonResetPassword jsonCall; + Poco::JSON::Object::Ptr params = new Poco::JSON::Object; + params->set("password", "ashze_Sja/63"); + auto result = jsonCall.handle(params); + + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "error"); + + auto msg = result->get("msg"); + ASSERT_FALSE(msg.isEmpty()); + ASSERT_TRUE(msg.isString()); + ASSERT_EQ(msg.toString(), "missing session_id"); + +} + +TEST_F(TestJsonResetPassword, WithoutPassword) +{ + JsonResetPassword jsonCall; + Poco::JSON::Object::Ptr params = new Poco::JSON::Object; + params->set("session_id", mUserSession->getHandle()); + auto result = jsonCall.handle(params); + + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "error"); + + auto msg = result->get("msg"); + ASSERT_FALSE(msg.isEmpty()); + ASSERT_TRUE(msg.isString()); + ASSERT_EQ(msg.toString(), "password missing"); +} + +TEST_F(TestJsonResetPassword, InvalidPassword) +{ + JsonResetPassword jsonCall; + Poco::JSON::Object::Ptr params = new Poco::JSON::Object; + params->set("session_id", mUserSession->getHandle()); + params->set("password", "ash"); + auto result = jsonCall.handle(params); + + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "error"); + + auto msg = result->get("msg"); + ASSERT_FALSE(msg.isEmpty()); + ASSERT_TRUE(msg.isString()); + ASSERT_EQ(msg.toString(), "password isn't valid"); +} + +TEST_F(TestJsonResetPassword, ValidPassword) +{ + JsonResetPassword jsonCall; + Poco::JSON::Object::Ptr params = new Poco::JSON::Object; + params->set("session_id", mUserSession->getHandle()); + params->set("password", "hath6/&Sja"); + auto result = jsonCall.handle(params); + + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "success"); +} diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.h b/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.h new file mode 100644 index 000000000..b8375bd90 --- /dev/null +++ b/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.h @@ -0,0 +1,20 @@ +#ifndef __GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_RESET_PASSWORD_H +#define __GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_RESET_PASSWORD_H + +#include "gtest/gtest.h" +#include "SingletonManager/SessionManager.h" + +#include "Poco/JSON/Object.h" + +class TestJsonResetPassword : public ::testing::Test +{ + +protected: + void SetUp() override; + void TearDown() override; + + Session* mUserSession; + +}; + +#endif //__GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_RESET_PASSWORD_H \ No newline at end of file From 2a3677f767c1bd5a04e412a3f133bdcebdfef432 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 17 Jun 2021 11:59:31 +0200 Subject: [PATCH 05/10] little things --- .../src/cpp/JSONInterface/JsonResetPassword.cpp | 10 ++++++---- .../src/cpp/JSONInterface/JsonUpdateUserInfos.cpp | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp index ac1606ab5..f06459baf 100644 --- a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp +++ b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp @@ -42,10 +42,12 @@ Poco::JSON::Object* JsonResetPassword::handle(Poco::Dynamic::Var params) return stateError("password encryption is already running"); } - user->setNewPassword(password); - KeyPairEd25519* key_pair = NULL; - if (!user->tryLoadPassphraseUserBackup(&key_pair)) { - user->setGradidoKeyPair(key_pair); + auto update_password_result = user->setNewPassword(password); + if (update_password_result == 2) { + KeyPairEd25519* key_pair = NULL; + if (!user->tryLoadPassphraseUserBackup(&key_pair)) { + user->setGradidoKeyPair(key_pair); + } } return stateSuccess(); } \ No newline at end of file diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index 86e79372d..bbec11110 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -171,8 +171,10 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) if (str_val.size() > 0) { - - if (!user->hasPassword() || isOldPasswordValid(updates, jsonErrorsArray)) + if (!user->hasPassword()) { + return stateError("login state invalid"); + } + if (isOldPasswordValid(updates, jsonErrorsArray)) { NotificationList errors; if (!sm->checkPwdValidation(value.toString(), &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { From 2c29c20d8fef3ac5f4cb737fc76ed03721a2c8aa Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 17 Jun 2021 12:11:20 +0200 Subject: [PATCH 06/10] adjust test for allow all password setting --- .../test/JSONInterface/TestJsonResetPassword.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp index 30218365c..acf646abd 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonResetPassword.cpp @@ -72,12 +72,17 @@ TEST_F(TestJsonResetPassword, InvalidPassword) auto state = result->get("state"); ASSERT_FALSE(state.isEmpty()); ASSERT_TRUE(state.isString()); - ASSERT_EQ(state.toString(), "error"); + if ((ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_ALLOW_ALL_PASSWORDS) == ServerConfig::UNSECURE_ALLOW_ALL_PASSWORDS) { + ASSERT_EQ(state.toString(), "success"); + } + else { + ASSERT_EQ(state.toString(), "error"); - auto msg = result->get("msg"); - ASSERT_FALSE(msg.isEmpty()); - ASSERT_TRUE(msg.isString()); - ASSERT_EQ(msg.toString(), "password isn't valid"); + auto msg = result->get("msg"); + ASSERT_FALSE(msg.isEmpty()); + ASSERT_TRUE(msg.isString()); + ASSERT_EQ(msg.toString(), "password isn't valid"); + } } TEST_F(TestJsonResetPassword, ValidPassword) From 551111e7a1443ab4f1c492f671441d902982ad53 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 17 Jun 2021 12:21:41 +0200 Subject: [PATCH 07/10] try again removed test --- .../src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp index 0e00276f6..3428c0656 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp @@ -241,7 +241,7 @@ TEST_F(TestJsonUpdateUserInfos, PasswordNotSecureEnough) delete result; } -/* + TEST_F(TestJsonUpdateUserInfos, PasswordCorrect) { JsonUpdateUserInfos jsonCall(mUserSession); @@ -277,7 +277,7 @@ TEST_F(TestJsonUpdateUserInfos, PasswordCorrect) delete result; } -*/ +//*/ TEST_F(TestJsonUpdateUserInfos, NoChanges) { JsonUpdateUserInfos jsonCall(mUserSession); From 5078d80862f5f4fa6e44760507a8b5b3c3493bc6 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 17 Jun 2021 12:40:04 +0200 Subject: [PATCH 08/10] fix test --- .../test/JSONInterface/TestJsonUpdateUserInfos.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp index 3428c0656..e297b93f2 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp @@ -245,12 +245,18 @@ TEST_F(TestJsonUpdateUserInfos, PasswordNotSecureEnough) TEST_F(TestJsonUpdateUserInfos, PasswordCorrect) { JsonUpdateUserInfos jsonCall(mUserSession); - ASSERT_EQ(mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"), USER_COMPLETE); - Poco::JSON::Object::Ptr update = new Poco::JSON::Object; update->set("User.password", "uasjUs7ZS/as12"); - update->set("User.password_old", "TestP4ssword&H"); + + if ((ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_ALLOW_ALL_PASSWORDS) == ServerConfig::UNSECURE_ALLOW_ALL_PASSWORDS) { + ASSERT_EQ(mUserSession->loadUser("Jeet_bb@gmail.com", "newPassword"), USER_COMPLETE); + update->set("User.password_old", "newPassword"); + } + else { + ASSERT_EQ(mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"), USER_COMPLETE); + update->set("User.password_old", "TestP4ssword&H"); + } auto params = chooseAccount(update); Profiler timeUsed; @@ -269,11 +275,9 @@ TEST_F(TestJsonUpdateUserInfos, PasswordCorrect) ASSERT_FALSE(state.isEmpty()); ASSERT_TRUE(state.isString()); - EXPECT_EQ(valid_values, 1); ASSERT_EQ(error_array.size(), 0); ASSERT_EQ(state.toString(), "success"); - delete result; } From 024f38fa5f874e8fa8cbfb8804099cb474b9e407 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 17 Jun 2021 13:09:29 +0200 Subject: [PATCH 09/10] remove ip check for reset password --- login_server/src/cpp/JSONInterface/JsonResetPassword.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp index f06459baf..c04f9fc09 100644 --- a/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp +++ b/login_server/src/cpp/JSONInterface/JsonResetPassword.cpp @@ -5,7 +5,7 @@ Poco::JSON::Object* JsonResetPassword::handle(Poco::Dynamic::Var params) { - auto result_session_check = checkAndLoadSession(params, true); + auto result_session_check = checkAndLoadSession(params, false); if (result_session_check) { return result_session_check; } From 56153893e86dfe49209d5e5f57f555a671d5d51b Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 17 Jun 2021 13:17:04 +0200 Subject: [PATCH 10/10] change frorntend for new API call --- frontend/src/apis/loginAPI.js | 2 +- frontend/src/views/Pages/ResetPassword.spec.js | 5 +++++ frontend/src/views/Pages/ResetPassword.vue | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index 5b55d3a5b..a1befd58a 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -106,7 +106,7 @@ const loginAPI = { 'User.password': password, }, } - return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload) + return apiPost(CONFIG.LOGIN_API_URL + 'resetPassword', payload) }, changePasswordProfile: async (sessionId, email, password, passwordNew) => { const payload = { diff --git a/frontend/src/views/Pages/ResetPassword.spec.js b/frontend/src/views/Pages/ResetPassword.spec.js index 261a1a0c0..14038e676 100644 --- a/frontend/src/views/Pages/ResetPassword.spec.js +++ b/frontend/src/views/Pages/ResetPassword.spec.js @@ -56,6 +56,11 @@ describe('ResetPassword', () => { $router: { push: routerPushMock, }, + $loading: { + show: jest.fn(() => { + return { hide: jest.fn() } + }), + }, } const stubs = { diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 1e1192976..1f1cbdbc0 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -154,6 +154,9 @@ export default { } }, async authenticate() { + const loader = this.$loading.show({ + container: this.$refs.submitButton, + }) const optin = this.$route.params.optin const result = await loginAPI.loginViaEmailVerificationCode(optin) if (result.success) { @@ -163,6 +166,7 @@ export default { } else { this.$toast.error(result.result.message) } + loader.hide() }, }, computed: {