From 1023e8932a29ab5028854a0424dd6aa1aac3d786 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 20 Apr 2021 20:38:40 +0200 Subject: [PATCH 1/7] check API to reset password --- configs/login_server/grd_login.properties | 2 +- frontend/src/apis/loginAPI.js | 18 +++- frontend/src/routes/routes.js | 2 +- frontend/src/views/Pages/ResetPassword.vue | 117 +++++++++++---------- 4 files changed, 83 insertions(+), 56 deletions(-) diff --git a/configs/login_server/grd_login.properties b/configs/login_server/grd_login.properties index 47dc81229..f14568a16 100644 --- a/configs/login_server/grd_login.properties +++ b/configs/login_server/grd_login.properties @@ -22,7 +22,7 @@ loginServer.db.user = root loginServer.db.password = loginServer.db.port = 3306 -frontend.checkEmailPath = http://localhost/account/checkEmail +frontend.checkEmailPath = http://localhost/reset email.disable = true diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index 91020ddbb..a095b0b87 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -64,7 +64,6 @@ const loginAPI = { return apiPost(CONFIG.LOGIN_API_URL + 'createUser', payload) }, sendEmail: async (email, email_text = 7, email_verification_code_type = 'resetPassword') => { - //console.log('api email', email) const payload = { email, email_text, @@ -72,6 +71,23 @@ const loginAPI = { } return apiPost(CONFIG.LOGIN_API_URL + 'sendEmail', payload) }, + loginViaEmailVerificationCode: async (optin) => { + return apiGet( + CONFIG.LOGIN_API_URL + + 'loginViaEmailVerificationCode?emailVerificationCode=' + + optin + ) + }, + changePassword: async (session_id, email, password) => { + const payload = { + session_id, + email, + 'update': { + 'User.password': password, + }, + } + return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload) + } } export default loginAPI diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index adae0be07..bfaff9de6 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -59,7 +59,7 @@ const routes = [ component: () => import('../views/Pages/ForgotPassword.vue'), }, { - path: '/reset', + path: '/reset/:optin', component: () => import('../views/Pages/ResetPassword.vue'), }, { path: '*', component: NotFound }, diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 145fba404..3646e89da 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -1,5 +1,5 @@ From 4862faf3395ff660a5076cd9b8491dd433525d58 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 20 Apr 2021 20:43:09 +0200 Subject: [PATCH 2/7] linting --- frontend/src/apis/loginAPI.js | 10 +- frontend/src/views/Pages/ResetPassword.vue | 125 ++++++++++----------- 2 files changed, 66 insertions(+), 69 deletions(-) diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index a095b0b87..a31a4062e 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -73,21 +73,19 @@ const loginAPI = { }, loginViaEmailVerificationCode: async (optin) => { return apiGet( - CONFIG.LOGIN_API_URL - + 'loginViaEmailVerificationCode?emailVerificationCode=' - + optin + CONFIG.LOGIN_API_URL + 'loginViaEmailVerificationCode?emailVerificationCode=' + optin, ) }, changePassword: async (session_id, email, password) => { const payload = { session_id, email, - 'update': { + update: { 'User.password': password, }, } - return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload) - } + return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload) + }, } export default loginAPI diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 3646e89da..395f6e2a1 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -91,68 +91,67 @@ From daca2314ba7da5490df81d64db68d82c9141ca60 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 22 Apr 2021 12:58:09 +0200 Subject: [PATCH 3/7] remove reset button --- frontend/src/views/Pages/Login.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index a9c5f0f09..8d6925542 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -53,7 +53,7 @@ - +
- - reset - @@ -114,6 +111,7 @@ export default { methods: { async onSubmit() { const result = await loginAPI.login(this.model.email, this.model.password) + console.log(result.data) if (result.success) { this.$store.dispatch('login', { session_id: result.result.data.session_id, From 5de88f3a42dda18d734e9dd5de499634155725d0 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 22 Apr 2021 19:04:32 +0200 Subject: [PATCH 4/7] Revert "update login-server build, allow create user without group" This reverts commit db15f9c4381fa2ac9c1cc88b9ecaf74cac394240. --- docker-compose.override.yml | 23 ++----------- docker-compose.yml | 3 +- docu/login_server.api.md | 2 -- login_server/Dockerfile.debug | 34 ++++++++++++------- login_server/Dockerfiles/build_and_run.sh | 18 ++-------- .../src/cpp/JSONInterface/JsonCreateUser.cpp | 25 ++++---------- 6 files changed, 35 insertions(+), 70 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index b3c399d3a..7dad57d93 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -32,30 +32,14 @@ services: - SYS_PTRACE volumes: - ./logs:/var/log/grd_login - - ./login_server/src:/code/src - - ./configs/login_server:/etc/grd_login - - login_build:/code/build - conan:/root/.conan - ######################################################### ## COMMUNITY SERVER (cakephp with php-fpm) ############## ######################################################### - community-server: - build: - context: . - dockerfile: ./community_server/Dockerfile - environment: - - DB_PASSWORD='' - - DB_USER='root' - - DB_DATABASE='gradido_community' - depends_on: - - mariadb - networks: - - internal-net - volumes: - - ./community_server/config/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini - - ./community_server/src:/var/www/cakephp/src + #community-server: + # volumes: + # - ./community_server ######################################################### @@ -100,6 +84,5 @@ services: volumes: frontend_node_modules: - login_build: conan: diff --git a/docker-compose.yml b/docker-compose.yml index 8b5bf33de..3ac176d9d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,6 +65,7 @@ services: - 1201:1201 volumes: - ./configs/login_server:/etc/grd_login + - login_build:/code/build_vol ######################################################### ## NGINX ################################################ @@ -130,4 +131,4 @@ networks: volumes: db_vol: - + login_build: diff --git a/docu/login_server.api.md b/docu/login_server.api.md index 27d83c06a..025e04094 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -96,7 +96,6 @@ with: "first_name":"Max", "last_name":"Musterman" , "emailType": 2, - "group_id": 1, "password":"123abcDE&", "login_after_register":true } @@ -105,7 +104,6 @@ with: - `emailType`: control email-text sended with email verification code - 2: default, if user has registered directly - 5: if user was registered by an admin -- `group_id`: group id of group to which user will join (id from login_server) - `login_after_register`: if set to true auto-login after create user was successfull, means session cookie is set and session_id returned ### Response diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index bb65996fb..f1b235e4e 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,32 +1,42 @@ ######################################################################################################### -# debug build preparation +# Build debug ######################################################################################################### -From conanio/gcc9 as build_debug_preparation -USER root +From gradido/login_dependencies:stage2 as debug ENV DOCKER_WORKDIR="/code" - -RUN mkdir -p ${DOCKER_WORKDIR} + +USER root + WORKDIR ${DOCKER_WORKDIR} +COPY . . -COPY . . +RUN chmod +x unix_parse_proto.sh +RUN chmod +x compile_pot.sh + +RUN ./compile_pot.sh +RUN ./unix_parse_proto.sh -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. ######################################################################################################### # run debug ######################################################################################################### -FROM build_debug_preparation as login_server_debug +FROM debug as login_server_debug ENV DOCKER_WORKDIR="/code" +#RUN apt-get update && \ +# apt-get install -y --no-install-recommends gdb && \ +# apt-get autoclean && \ +# apt-get autoremove && \ +# apt-get clean && \ +# rm -rf /var/lib/apt/lists/* + +VOLUME /var/log/grd_login +VOLUME /code/src EXPOSE 1200 EXPOSE 1201 WORKDIR ${DOCKER_WORKDIR} RUN chmod +x ./Dockerfiles/build_and_run.sh -CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer +CMD ./Dockerfiles/build_and_run.sh; ./build_vol/bin/Gradido_LoginServer diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh index e18dcd17d..59408daca 100644 --- a/login_server/Dockerfiles/build_and_run.sh +++ b/login_server/Dockerfiles/build_and_run.sh @@ -1,21 +1,7 @@ #!/bin/bash +cp build/conan* build_vol/ +cd build_vol -cd build -conan install .. --build=missing -s build_type=Debug -cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j${CPU_COUNT} protoc grpc_cpp_plugin -cd .. - -if [ ! -d "./src/cpp/proto/hedera" ] ; then -#if [ ! -f "./src/cpp/proto/gradido/TransactionBody.pb.h"] ; then - chmod +x unix_parse_proto.sh - ./unix_parse_proto.sh -fi -chmod +x compile_pot.sh - -./compile_pot.sh - -cd build cmake -DCMAKE_BUILD_TYPE=Debug .. make -j$(nproc) Gradido_LoginServer #echo "building done" diff --git a/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp b/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp index c66d10c8d..f0a6ee7e9 100644 --- a/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp +++ b/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp @@ -17,12 +17,11 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) std::string password; bool login_after_register = false; int emailType; - int group_id = 1; - bool group_was_not_set = false; + int group_id; auto em = EmailManager::getInstance(); auto sm = SessionManager::getInstance(); - printf("enter\n"); + // if is json object if (params.type() == typeid(Poco::JSON::Object::Ptr)) { Poco::JSON::Object::Ptr paramJsonObject = params.extract(); @@ -36,11 +35,7 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) paramJsonObject->get("first_name").convert(first_name); paramJsonObject->get("last_name").convert(last_name); paramJsonObject->get("emailType").convert(emailType); - auto group_id_obj = paramJsonObject->get("group_id"); - - if(!group_id_obj.isEmpty()) { - group_id_obj.convert(group_id); - } + paramJsonObject->get("group_id").convert(group_id); if ((ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS)) { paramJsonObject->get("password").convert(password); @@ -80,10 +75,6 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) } // create user - if(!group_id) { - group_id = 1; - group_was_not_set = true; - } user = controller::User::create(email, first_name, last_name, group_id); auto userModel = user->getModel(); Session* session = nullptr; @@ -102,7 +93,7 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) UniLib::controller::TaskPtr create_authenticated_encrypten_key = new AuthenticatedEncryptionCreateKeyTask(user, password); create_authenticated_encrypten_key->scheduleTask(create_authenticated_encrypten_key); } - + auto emailOptIn = controller::EmailVerificationCode::create(userModel->getID(), model::table::EMAIL_OPT_IN_REGISTER); auto emailOptInModel = emailOptIn->getModel(); if (!emailOptInModel->insertIntoDB(false)) { @@ -114,14 +105,10 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) if (login_after_register && session) { Poco::JSON::Object* result = stateSuccess(); - if(group_was_not_set) { - Poco::JSON::Array infos; - infos.add("group_id was not set, use 1 as default!"); - result->set("info", infos); - } + result->set("session_id", session->getHandle()); return result; } return stateSuccess(); -} +} \ No newline at end of file From a0dc2531ff21ea799e0cb6742ab25cfaa8ceffda Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 27 Apr 2021 00:32:38 +0200 Subject: [PATCH 5/7] password can be reseted --- frontend/src/locales/de.json | 5 +++ frontend/src/locales/en.json | 5 +++ frontend/src/views/Pages/Login.vue | 1 - .../src/views/Pages/ResetPassword.spec.js | 42 +++++++++++------- frontend/src/views/Pages/ResetPassword.vue | 44 ++++++++++--------- 5 files changed, 59 insertions(+), 38 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 0e60a3094..e3868124c 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -5,6 +5,7 @@ "logout":"Abmelden", "login":"Login", "signup": "Registrieren", + "reset": "Passwort zurücksetzen", "imprint":"Impressum", "privacy_policy":"Datenschutzerklärung", "members_area": "Mitgliedsbereich", @@ -110,5 +111,9 @@ "submit":"Einreichen", "hours_report":"Stundenbericht" } + }, + "reset-password": { + "title": "Passwort Zurücksetzen", + "text": "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünfitg in der GRADIDO App anmelden kannst." } } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 1dc703f14..521f68f0d 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -5,6 +5,7 @@ "logout":"Logout", "login":"Login", "signup": "Sign up", + "reset": "Reset password", "imprint":"Legal notice", "privacy_policy":"Privacy policy", "members_area": "Member's area", @@ -110,5 +111,9 @@ "submit":"submit", "hours_report":"Hourly report" } + }, + "reset-password": { + "title": "Reset Password", + "text": "Now you can save a new password to login to the GRADIDO App in the future." } } diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 8d6925542..f7c002d2a 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -111,7 +111,6 @@ export default { methods: { async onSubmit() { const result = await loginAPI.login(this.model.email, this.model.password) - console.log(result.data) if (result.success) { this.$store.dispatch('login', { session_id: result.result.data.session_id, diff --git a/frontend/src/views/Pages/ResetPassword.spec.js b/frontend/src/views/Pages/ResetPassword.spec.js index ebff0fc20..7e87bb90f 100644 --- a/frontend/src/views/Pages/ResetPassword.spec.js +++ b/frontend/src/views/Pages/ResetPassword.spec.js @@ -1,35 +1,30 @@ -import { mount, RouterLinkStub } from '@vue/test-utils' -import Vuex from 'vuex' -import flushPromises from 'flush-promises' +import { mount } from '@vue/test-utils' +import VueRouter from 'vue-router' +import routes from '../../routes/routes' import ResetPassword from './ResetPassword' const localVue = global.localVue +const router = new VueRouter({ routes }) + describe('ResetPassword', () => { let wrapper + let emailVerification = jest.fn() + let mocks = { $i18n: { locale: 'en', }, $t: jest.fn((t) => t), - } - - let state = { - // loginfail: false, - } - - let store = new Vuex.Store({ - state, - }) - - let stubs = { - RouterLink: RouterLinkStub, + loginAPI: { + loginViaEmailVerificationCode: emailVerification, + }, } const Wrapper = () => { - return mount(ResetPassword, { localVue, mocks, store, stubs }) + return mount(ResetPassword, { localVue, mocks, router }) } describe('mount', () => { @@ -37,7 +32,20 @@ describe('ResetPassword', () => { wrapper = Wrapper() }) - it('renders the Reset Password form', () => { + /* + it('calls the email verification when created', () => { + const spy = jest.spyOn(wrapper.vm, 'authenticate') + expect(spy).toBeCalled() + }) + */ + + it('does not render the Reset Password form when not authenticated', async () => { + expect(wrapper.find('div.resetpwd-form').exists()).toBeFalsy() + }) + + it('renders the Reset Password form', async () => { + wrapper.setData({ authenticated: true }) + await wrapper.vm.$nextTick() expect(wrapper.find('div.resetpwd-form').exists()).toBeTruthy() }) diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 395f6e2a1..c1e74855f 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -6,11 +6,8 @@
-

Reset Password

-
- Jetzt kannst du ein neues Passwort speichern, mit welchem du dich zukünfitg in der - GRADIDO App anmelden kannst. -
+

{{ $t('reset-password.title') }}

+
{{ $t('reset-password.text') }}
@@ -78,7 +75,7 @@ v-if="passwordsFilled && samePasswords && passwordValidation.valid" > - {{ $t('signup') }} + {{ $t('reset') }}
@@ -108,18 +105,32 @@ export default { submitted: false, authenticated: false, session_id: null, + email: null, } }, methods: { togglePasswordVisibility() { this.passwordVisible = !this.passwordVisible }, - onSubmit() { - this.$store.dispatch('createUser', { - password: this.model.password, - }) - this.model.password = '' - this.$router.push('/thx') + async onSubmit() { + const result = await loginAPI.changePassword(this.session_id, this.email, this.password) + if (result.success) { + this.password = '' + this.$router.push('/thx') + } else { + alert(result.result.message) + } + }, + async authenticate() { + const optin = this.$route.params.optin + const result = await loginAPI.loginViaEmailVerificationCode(optin) + if (result.success) { + this.authenticated = true + this.session_id = result.result.data.session_id + this.email = result.result.data.user.email + } else { + alert(result.result.message) + } }, }, computed: { @@ -143,14 +154,7 @@ export default { }, }, async created() { - const optin = this.$route.params.optin - const result = await loginAPI.loginViaEmailVerificationCode(optin) - if (result.success) { - this.authenticated = true - this.session_id = result.result.data.session_id - } else { - alert(result.result.message) - } + this.authenticate() }, } From 1fde044403b2c032c78109ce5b71cb2a56770ae3 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 27 Apr 2021 00:58:28 +0200 Subject: [PATCH 6/7] Revert "Revert "update login-server build, allow create user without group"" This reverts commit 5de88f3a42dda18d734e9dd5de499634155725d0. --- docker-compose.override.yml | 20 ++++++++--- docker-compose.yml | 3 +- docu/login_server.api.md | 2 ++ login_server/Dockerfile.debug | 34 +++++++------------ login_server/Dockerfiles/build_and_run.sh | 2 -- .../src/cpp/JSONInterface/JsonCreateUser.cpp | 25 ++++++++++---- 6 files changed, 50 insertions(+), 36 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 2fa059950..d8445385f 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -36,12 +36,25 @@ services: - ./configs/login_server:/etc/grd_login - login_build_conan:/code/build_vol + ######################################################### ## COMMUNITY SERVER (cakephp with php-fpm) ############## ######################################################### - #community-server: - # volumes: - # - ./community_server + community-server: + build: + context: . + dockerfile: ./community_server/Dockerfile + environment: + - DB_PASSWORD='' + - DB_USER='root' + - DB_DATABASE='gradido_community' + depends_on: + - mariadb + networks: + - internal-net + volumes: + - ./community_server/config/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini + - ./community_server/src:/var/www/cakephp/src ######################################################### @@ -87,4 +100,3 @@ services: volumes: frontend_node_modules: login_build_conan: - diff --git a/docker-compose.yml b/docker-compose.yml index 3ac176d9d..8b5bf33de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,7 +65,6 @@ services: - 1201:1201 volumes: - ./configs/login_server:/etc/grd_login - - login_build:/code/build_vol ######################################################### ## NGINX ################################################ @@ -131,4 +130,4 @@ networks: volumes: db_vol: - login_build: + diff --git a/docu/login_server.api.md b/docu/login_server.api.md index 025e04094..27d83c06a 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -96,6 +96,7 @@ with: "first_name":"Max", "last_name":"Musterman" , "emailType": 2, + "group_id": 1, "password":"123abcDE&", "login_after_register":true } @@ -104,6 +105,7 @@ with: - `emailType`: control email-text sended with email verification code - 2: default, if user has registered directly - 5: if user was registered by an admin +- `group_id`: group id of group to which user will join (id from login_server) - `login_after_register`: if set to true auto-login after create user was successfull, means session cookie is set and session_id returned ### Response diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index f1b235e4e..bb65996fb 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,42 +1,32 @@ ######################################################################################################### -# Build debug +# debug build preparation ######################################################################################################### -From gradido/login_dependencies:stage2 as debug - -ENV DOCKER_WORKDIR="/code" - +From conanio/gcc9 as build_debug_preparation USER root +ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} -COPY . . -RUN chmod +x unix_parse_proto.sh -RUN chmod +x compile_pot.sh - -RUN ./compile_pot.sh -RUN ./unix_parse_proto.sh +COPY . . +RUN cd dependencies/mariadb-connector-c && \ + mkdir build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. ######################################################################################################### # run debug ######################################################################################################### -FROM debug as login_server_debug +FROM build_debug_preparation as login_server_debug ENV DOCKER_WORKDIR="/code" -#RUN apt-get update && \ -# apt-get install -y --no-install-recommends gdb && \ -# apt-get autoclean && \ -# apt-get autoremove && \ -# apt-get clean && \ -# rm -rf /var/lib/apt/lists/* - -VOLUME /var/log/grd_login -VOLUME /code/src EXPOSE 1200 EXPOSE 1201 WORKDIR ${DOCKER_WORKDIR} RUN chmod +x ./Dockerfiles/build_and_run.sh -CMD ./Dockerfiles/build_and_run.sh; ./build_vol/bin/Gradido_LoginServer +CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh index dd967f9e8..b246d8230 100644 --- a/login_server/Dockerfiles/build_and_run.sh +++ b/login_server/Dockerfiles/build_and_run.sh @@ -1,6 +1,4 @@ #!/bin/bash -cp build/conan* build_vol/ -cd build_vol cp build/conan* build_vol/ diff --git a/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp b/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp index f0a6ee7e9..c66d10c8d 100644 --- a/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp +++ b/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp @@ -17,11 +17,12 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) std::string password; bool login_after_register = false; int emailType; - int group_id; + int group_id = 1; + bool group_was_not_set = false; auto em = EmailManager::getInstance(); auto sm = SessionManager::getInstance(); - + printf("enter\n"); // if is json object if (params.type() == typeid(Poco::JSON::Object::Ptr)) { Poco::JSON::Object::Ptr paramJsonObject = params.extract(); @@ -35,7 +36,11 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) paramJsonObject->get("first_name").convert(first_name); paramJsonObject->get("last_name").convert(last_name); paramJsonObject->get("emailType").convert(emailType); - paramJsonObject->get("group_id").convert(group_id); + auto group_id_obj = paramJsonObject->get("group_id"); + + if(!group_id_obj.isEmpty()) { + group_id_obj.convert(group_id); + } if ((ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS)) { paramJsonObject->get("password").convert(password); @@ -75,6 +80,10 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) } // create user + if(!group_id) { + group_id = 1; + group_was_not_set = true; + } user = controller::User::create(email, first_name, last_name, group_id); auto userModel = user->getModel(); Session* session = nullptr; @@ -93,7 +102,7 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) UniLib::controller::TaskPtr create_authenticated_encrypten_key = new AuthenticatedEncryptionCreateKeyTask(user, password); create_authenticated_encrypten_key->scheduleTask(create_authenticated_encrypten_key); } - + auto emailOptIn = controller::EmailVerificationCode::create(userModel->getID(), model::table::EMAIL_OPT_IN_REGISTER); auto emailOptInModel = emailOptIn->getModel(); if (!emailOptInModel->insertIntoDB(false)) { @@ -105,10 +114,14 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) if (login_after_register && session) { Poco::JSON::Object* result = stateSuccess(); - + if(group_was_not_set) { + Poco::JSON::Array infos; + infos.add("group_id was not set, use 1 as default!"); + result->set("info", infos); + } result->set("session_id", session->getHandle()); return result; } return stateSuccess(); -} \ No newline at end of file +} From c9cabd5bed9a5157bdfe5ad06cbc018981de0450 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 27 Apr 2021 01:02:34 +0200 Subject: [PATCH 7/7] undo changes on dockerfile debug --- docker-compose.override.yml | 1 + login_server/Dockerfile.debug | 34 ++++++++++++++++++++++------------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index d8445385f..5a505478b 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -100,3 +100,4 @@ services: volumes: frontend_node_modules: login_build_conan: + diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index bb65996fb..f1b235e4e 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,32 +1,42 @@ ######################################################################################################### -# debug build preparation +# Build debug ######################################################################################################### -From conanio/gcc9 as build_debug_preparation -USER root +From gradido/login_dependencies:stage2 as debug ENV DOCKER_WORKDIR="/code" - -RUN mkdir -p ${DOCKER_WORKDIR} + +USER root + WORKDIR ${DOCKER_WORKDIR} +COPY . . -COPY . . +RUN chmod +x unix_parse_proto.sh +RUN chmod +x compile_pot.sh + +RUN ./compile_pot.sh +RUN ./unix_parse_proto.sh -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. ######################################################################################################### # run debug ######################################################################################################### -FROM build_debug_preparation as login_server_debug +FROM debug as login_server_debug ENV DOCKER_WORKDIR="/code" +#RUN apt-get update && \ +# apt-get install -y --no-install-recommends gdb && \ +# apt-get autoclean && \ +# apt-get autoremove && \ +# apt-get clean && \ +# rm -rf /var/lib/apt/lists/* + +VOLUME /var/log/grd_login +VOLUME /code/src EXPOSE 1200 EXPOSE 1201 WORKDIR ${DOCKER_WORKDIR} RUN chmod +x ./Dockerfiles/build_and_run.sh -CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer +CMD ./Dockerfiles/build_and_run.sh; ./build_vol/bin/Gradido_LoginServer