From bf71e35ecd333d888d63213d69b04fc681a9d0bd Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 4 Mar 2021 16:23:18 +0000 Subject: [PATCH 01/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e65ea03..1194b5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,12 @@ All notable changes to this project will be documented in this file. Dates are d #### [v0.5.0](https://git.odit.services/lfk/backend/compare/v0.4.6...v0.5.0) +- Merge pull request 'Alpha Release 0.5.0' (#153) from dev into main [`64da0ea`](https://git.odit.services/lfk/backend/commit/64da0eadb313f3bd3ae20a66bcaf4401528008d9) - Removed mail templates [`c2fdfee`](https://git.odit.services/lfk/backend/commit/c2fdfeed4f5fc454b02bc4b198965889c173bbaa) - Removed mail config [`0342757`](https://git.odit.services/lfk/backend/commit/0342757d929b12635c88e74f17495df656865b1a) - Added selfservice scan response class [`6074ac5`](https://git.odit.services/lfk/backend/commit/6074ac5b3a8e43fd98394c1fb70c6e1dea8fcd5e) - Removed old mailer code [`0fcc729`](https://git.odit.services/lfk/backend/commit/0fcc729b56430f0fdb56242857aa1d883d5a4866) +- 🧾New changelog file version [CI SKIP] [skip ci] [`5272829`](https://git.odit.services/lfk/backend/commit/52728290b477d3f90ee7c14e0d438c4c74415322) - Added the new mailer code [`1551a44`](https://git.odit.services/lfk/backend/commit/1551a444babc025cde6e894c66d2be2c84ab26da) - Removed (now useless) mail controller [`485c247`](https://git.odit.services/lfk/backend/commit/485c247cd3305c4c4422d5582b1d61cc7af84989) - Trackscans now have a laptime that get's calculated on creation [`aa83373`](https://git.odit.services/lfk/backend/commit/aa833736d32993b1656abeeb02a4f8b021ec6252) @@ -23,11 +25,11 @@ All notable changes to this project will be documented in this file. Dates are d - Updated auth reset test for new mailer [`ae7d617`](https://git.odit.services/lfk/backend/commit/ae7d6176902699f82ea127194908ee360233e7b4) - Added scans returns 200 test [`82c65b6`](https://git.odit.services/lfk/backend/commit/82c65b632cdf44165b083494702b836c74e46a41) - 🚀Bumped version to v0.4.7 [`f1d85cf`](https://git.odit.services/lfk/backend/commit/f1d85cfb855c2aae581ade69751b3969ce38f020) +- Now generateing bs mailer config in test env [`bf6b701`](https://git.odit.services/lfk/backend/commit/bf6b70106eb735d9ad6f6ad89f09194680af5ae1) - Added new mailer settings to config [`ddea02d`](https://git.odit.services/lfk/backend/commit/ddea02db574cc348685558f3fa3ecc84adbd6b65) -- 🧾New changelog file version [CI SKIP] [skip ci] [`be397c8`](https://git.odit.services/lfk/backend/commit/be397c8899d5b4406c17e8f9951555c54f852901) - 🚀Bumped version to v0.5.0 [`3f2a2d2`](https://git.odit.services/lfk/backend/commit/3f2a2d292979c7f8162d92465b60b220f2634e7a) - Merge pull request 'Features for the new selfservice feature/151-selfservice_scans_mails' (#152) from feature/151-selfservice_scans_mails into dev [`15356c1`](https://git.odit.services/lfk/backend/commit/15356c1030988d03e3739f3ffe770669789759f2) -- Now generateing bs mailer config in test env [`bf6b701`](https://git.odit.services/lfk/backend/commit/bf6b70106eb735d9ad6f6ad89f09194680af5ae1) +- 🧾New changelog file version [CI SKIP] [skip ci] [`be397c8`](https://git.odit.services/lfk/backend/commit/be397c8899d5b4406c17e8f9951555c54f852901) - Promoted axios to dependency [`a9e06c9`](https://git.odit.services/lfk/backend/commit/a9e06c905537b6da24706389e304e825a33a28ad) - Removed nodemailer from backend [`5833f42`](https://git.odit.services/lfk/backend/commit/5833f4218f9a4c97b69021814df92470a1816917) - Added another resonse type [`030b225`](https://git.odit.services/lfk/backend/commit/030b2255d42aab21d8974fc3a7235285934d53b7) -- 2.47.2 From 5f5c8a061eb94361e4cd02e9a6469194a9092513 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 4 Mar 2021 16:27:55 +0000 Subject: [PATCH 02/40] =?UTF-8?q?=F0=9F=93=96New=20license=20file=20versio?= =?UTF-8?q?n=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- licenses.md | 107 +++++++++++++--------------------------------------- 1 file changed, 27 insertions(+), 80 deletions(-) diff --git a/licenses.md b/licenses.md index 3c77ba7..e809379 100644 --- a/licenses.md +++ b/licenses.md @@ -57,6 +57,33 @@ SOFTWARE. +# axios +**Author**: Matt Zabriskie +**Repo**: [object Object] +**License**: MIT +**Description**: Promise based HTTP client for the browser and node.js +## License Text +Copyright (c) 2014-present Matt Zabriskie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + # body-parser **Author**: undefined **Repo**: expressjs/body-parser @@ -390,30 +417,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ## License Text -# nodemailer -**Author**: Andris Reinman -**Repo**: [object Object] -**License**: MIT -**Description**: Easy as cake e-mail sending from your Node.js applications -## License Text -Copyright (c) 2011-2019 Andris Reinman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - # pg **Author**: Brian Carlson **Repo**: [object Object] @@ -865,35 +868,6 @@ OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SOFTWARE -# @types/nodemailer -**Author**: undefined -**Repo**: [object Object] -**License**: MIT -**Description**: TypeScript definitions for Nodemailer -## License Text - MIT License - - Copyright (c) Microsoft Corporation. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE - - # @types/uuid **Author**: undefined **Repo**: [object Object] @@ -923,33 +897,6 @@ OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SOFTWARE -# axios -**Author**: Matt Zabriskie -**Repo**: [object Object] -**License**: MIT -**Description**: Promise based HTTP client for the browser and node.js -## License Text -Copyright (c) 2014-present Matt Zabriskie - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - # cp-cli **Author**: undefined **Repo**: [object Object] -- 2.47.2 From 66d6023335c7a9d1a145c4189b610940ef5a525a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:15:27 +0100 Subject: [PATCH 03/40] Added last reset requested timestamp to runners ref #154 --- src/models/entities/Runner.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/models/entities/Runner.ts b/src/models/entities/Runner.ts index ad16eae..87ef38d 100644 --- a/src/models/entities/Runner.ts +++ b/src/models/entities/Runner.ts @@ -1,5 +1,5 @@ -import { IsInt, IsNotEmpty } from "class-validator"; -import { ChildEntity, ManyToOne, OneToMany } from "typeorm"; +import { IsInt, IsNotEmpty, IsOptional, IsString } from "class-validator"; +import { ChildEntity, Column, ManyToOne, OneToMany } from "typeorm"; import { ResponseRunner } from '../responses/ResponseRunner'; import { DistanceDonation } from "./DistanceDonation"; import { Participant } from "./Participant"; @@ -43,6 +43,15 @@ export class Runner extends Participant { @OneToMany(() => Scan, scan => scan.runner, { nullable: true }) scans: Scan[]; + /** + * The last time the runner requested a selfservice link. + * Used to prevent spamming of the selfservice link forgotten route. + */ + @Column({ nullable: true, unique: false }) + @IsString() + @IsOptional() + resetRequestedTimestamp?: number; + /** * Returns all valid scans associated with this runner. * This is implemented here to avoid duplicate code in other files. -- 2.47.2 From d7099717c2eee8aaf1b580345717cc5acc06dbd2 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:23:01 +0100 Subject: [PATCH 04/40] Created basic endpoint for user forgotten mails ref #154 --- .../RunnerSelfServiceController.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index 8b1f30c..9264555 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -1,5 +1,5 @@ import * as jwt from "jsonwebtoken"; -import { Body, Get, JsonController, OnUndefined, Param, Post } from 'routing-controllers'; +import { Body, Get, JsonController, OnUndefined, Param, Post, QueryParam } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { config } from '../config'; @@ -12,6 +12,7 @@ import { CreateSelfServiceRunner } from '../models/actions/create/CreateSelfServ import { Runner } from '../models/entities/Runner'; import { RunnerGroup } from '../models/entities/RunnerGroup'; import { RunnerOrganization } from '../models/entities/RunnerOrganization'; +import { ResponseEmpty } from '../models/responses/ResponseEmpty'; import { ResponseSelfServiceOrganisation } from '../models/responses/ResponseSelfServiceOrganisation'; import { ResponseSelfServiceRunner } from '../models/responses/ResponseSelfServiceRunner'; import { ResponseSelfServiceScan } from '../models/responses/ResponseSelfServiceScan'; @@ -53,6 +54,23 @@ export class RunnerSelfServiceController { return responseScans; } + @Post('/runners/me/forgot') + @ResponseSchema(ResponseSelfServiceRunner, { isArray: true }) + @ResponseSchema(RunnerNotFoundError, { statusCode: 404 }) + @OnUndefined(ResponseEmpty) + @OpenAPI({ description: 'TODO' }) + async requestNewToken(@QueryParam('mail') mail: string) { + const runner = await this.runnerRepository.findOne({ email: mail }); + if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 15 * 60)) { throw new Error("timeout!") } + const token = JwtCreator.createSelfService(runner); + try { + //await Mailer.sendForgottenMail(); + } catch (error) { + throw new Error("Mail fucked up"); + } + return { token }; + } + @Post('/runners/register') @ResponseSchema(ResponseSelfServiceRunner) @ResponseSchema(RunnerEmailNeededError, { statusCode: 406 }) -- 2.47.2 From ffcd45e5724fccdec9b1dbc48f1320525dcd7288 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:24:43 +0100 Subject: [PATCH 05/40] Updated request timeout ref #154 --- src/controllers/RunnerSelfServiceController.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index 9264555..8caeb6b 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -61,13 +61,18 @@ export class RunnerSelfServiceController { @OpenAPI({ description: 'TODO' }) async requestNewToken(@QueryParam('mail') mail: string) { const runner = await this.runnerRepository.findOne({ email: mail }); - if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 15 * 60)) { throw new Error("timeout!") } + if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 60 * 60 * 24)) { throw new Error("timeout!") } const token = JwtCreator.createSelfService(runner); + try { //await Mailer.sendForgottenMail(); } catch (error) { throw new Error("Mail fucked up"); } + + runner.resetRequestedTimestamp = Math.floor(Date.now() / 1000); + await this.runnerRepository.save(runner); + return { token }; } -- 2.47.2 From e7f0cb45c9ac3aa06e2a57786aa1cc51c9d66598 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:29:44 +0100 Subject: [PATCH 06/40] Added not found error logic ref #154 --- src/controllers/RunnerSelfServiceController.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index 8caeb6b..8e72c3e 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -55,12 +55,13 @@ export class RunnerSelfServiceController { } @Post('/runners/me/forgot') - @ResponseSchema(ResponseSelfServiceRunner, { isArray: true }) @ResponseSchema(RunnerNotFoundError, { statusCode: 404 }) @OnUndefined(ResponseEmpty) @OpenAPI({ description: 'TODO' }) async requestNewToken(@QueryParam('mail') mail: string) { const runner = await this.runnerRepository.findOne({ email: mail }); + if (!runner) { throw new RunnerNotFoundError(); } + if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 60 * 60 * 24)) { throw new Error("timeout!") } const token = JwtCreator.createSelfService(runner); -- 2.47.2 From e26b7d4923777a3013368e29c122709de7e1d9da Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:32:36 +0100 Subject: [PATCH 07/40] Implemented the "real" errors ref #154 --- src/controllers/RunnerSelfServiceController.ts | 7 ++++--- src/errors/RunnerErrors.ts | 11 +++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index 8e72c3e..b441cb0 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -4,7 +4,8 @@ import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { config } from '../config'; import { InvalidCredentialsError, JwtNotProvidedError } from '../errors/AuthError'; -import { RunnerEmailNeededError, RunnerNotFoundError } from '../errors/RunnerErrors'; +import { MailSendingError } from '../errors/MailErrors'; +import { RunnerEmailNeededError, RunnerNotFoundError, RunnerSelfserviceTimeoutError } from '../errors/RunnerErrors'; import { RunnerOrganizationNotFoundError } from '../errors/RunnerOrganizationErrors'; import { JwtCreator } from '../jwtcreator'; import { CreateSelfServiceCitizenRunner } from '../models/actions/create/CreateSelfServiceCitizenRunner'; @@ -62,13 +63,13 @@ export class RunnerSelfServiceController { const runner = await this.runnerRepository.findOne({ email: mail }); if (!runner) { throw new RunnerNotFoundError(); } - if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 60 * 60 * 24)) { throw new Error("timeout!") } + if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 60 * 60 * 24)) { throw new RunnerSelfserviceTimeoutError(); } const token = JwtCreator.createSelfService(runner); try { //await Mailer.sendForgottenMail(); } catch (error) { - throw new Error("Mail fucked up"); + throw new MailSendingError(); } runner.resetRequestedTimestamp = Math.floor(Date.now() / 1000); diff --git a/src/errors/RunnerErrors.ts b/src/errors/RunnerErrors.ts index 7be9048..f5eea84 100644 --- a/src/errors/RunnerErrors.ts +++ b/src/errors/RunnerErrors.ts @@ -46,6 +46,17 @@ export class RunnerEmailNeededError extends NotAcceptableError { message = "Citizenrunners have to provide an email address for verification and contacting." } +/** + * Error to throw when a runner already requested a new selfservice link in the last 24hrs. + */ +export class RunnerSelfserviceTimeoutError extends NotAcceptableError { + @IsString() + name = "RunnerSelfserviceTimeoutError" + + @IsString() + message = "You can only reqest a new token every 24hrs." +} + /** * Error to throw when a runner still has distance donations associated. */ -- 2.47.2 From 83765136ccacd82ba6a8f9fb43eed78191ee0aa5 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:36:12 +0100 Subject: [PATCH 08/40] Added mailer functions ref #154 --- src/mailer.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/mailer.ts b/src/mailer.ts index 33d7f24..4d1753a 100644 --- a/src/mailer.ts +++ b/src/mailer.ts @@ -25,4 +25,36 @@ export class Mailer { throw new MailSendingError(); } } + + /** + * Function for sending a runner selfservice welcome mail. + * @param to_address The address the mail will be sent to. Should always get pulled from a runner object. + * @param token The requested selfservice token - will be combined with the app_url to generate a selfservice profile link. + */ + public static async sendSelfserviceWelcomeMail(to_address: string, token: string, locale: string = "en") { + try { + await axios.post(`${Mailer.base}/registration?locale=${locale}&key=${Mailer.key}`, { + address: to_address, + selfserviceToken: token + }); + } catch (error) { + throw new MailSendingError(); + } + } + + /** + * Function for sending a runner selfservice link forgotten mail. + * @param to_address The address the mail will be sent to. Should always get pulled from a runner object. + * @param token The requested selfservice token - will be combined with the app_url to generate a selfservice profile link. + */ + public static async sendSelfserviceForgottenMail(to_address: string, token: string, locale: string = "en") { + try { + await axios.post(`${Mailer.base}/registration_forgot?locale=${locale}&key=${Mailer.key}`, { + address: to_address, + selfserviceToken: token + }); + } catch (error) { + throw new MailSendingError(); + } + } } -- 2.47.2 From a3437475caf6b435ae4bdf6d48aeb7da7d43b25f Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:38:37 +0100 Subject: [PATCH 09/40] Runner controller now uses the Mailer functions ref #154 --- src/controllers/RunnerSelfServiceController.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index b441cb0..f73098f 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -8,6 +8,7 @@ import { MailSendingError } from '../errors/MailErrors'; import { RunnerEmailNeededError, RunnerNotFoundError, RunnerSelfserviceTimeoutError } from '../errors/RunnerErrors'; import { RunnerOrganizationNotFoundError } from '../errors/RunnerOrganizationErrors'; import { JwtCreator } from '../jwtcreator'; +import { Mailer } from '../mailer'; import { CreateSelfServiceCitizenRunner } from '../models/actions/create/CreateSelfServiceCitizenRunner'; import { CreateSelfServiceRunner } from '../models/actions/create/CreateSelfServiceRunner'; import { Runner } from '../models/entities/Runner'; @@ -67,7 +68,7 @@ export class RunnerSelfServiceController { const token = JwtCreator.createSelfService(runner); try { - //await Mailer.sendForgottenMail(); + await Mailer.sendSelfserviceForgottenMail(runner.email, token, "en") } catch (error) { throw new MailSendingError(); } @@ -88,6 +89,13 @@ export class RunnerSelfServiceController { runner = await this.runnerRepository.save(runner); let response = new ResponseSelfServiceRunner(await this.runnerRepository.findOne(runner, { relations: ['scans', 'group', 'group.parentGroup', 'scans.track', 'cards', 'distanceDonations', 'distanceDonations.donor', 'distanceDonations.runner', 'distanceDonations.runner.scans', 'distanceDonations.runner.scans.track'] })); response.token = JwtCreator.createSelfService(runner); + + try { + await Mailer.sendSelfserviceWelcomeMail(runner.email, response.token, "en") + } catch (error) { + throw new MailSendingError(); + } + return response; } @@ -103,6 +111,13 @@ export class RunnerSelfServiceController { let response = new ResponseSelfServiceRunner(await this.runnerRepository.findOne(runner, { relations: ['scans', 'group', 'group.parentGroup', 'scans.track', 'cards', 'distanceDonations', 'distanceDonations.donor', 'distanceDonations.runner', 'distanceDonations.runner.scans', 'distanceDonations.runner.scans.track'] })); response.token = JwtCreator.createSelfService(runner); + + try { + await Mailer.sendSelfserviceWelcomeMail(runner.email, response.token, "en") + } catch (error) { + throw new MailSendingError(); + } + return response; } -- 2.47.2 From 3f372123fd2e1fae467e9cb20985de1eeb9f6a57 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:41:10 +0100 Subject: [PATCH 10/40] Added testing env check ref #154 --- scripts/create_testenv.ts | 2 +- src/config.ts | 2 ++ src/mailer.ts | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/create_testenv.ts b/scripts/create_testenv.ts index da08dea..ed18169 100644 --- a/scripts/create_testenv.ts +++ b/scripts/create_testenv.ts @@ -10,7 +10,7 @@ DB_PORT=bla DB_USER=bla DB_PASSWORD=bla DB_NAME=./test.sqlite -NODE_ENV=dev +NODE_ENV=test POSTALCODE_COUNTRYCODE=DE SEED_TEST_DATA=true MAILER_URL=https://dev.lauf-fuer-kaya.de/mailer diff --git a/src/config.ts b/src/config.ts index 08af1ac..bb6f2c5 100644 --- a/src/config.ts +++ b/src/config.ts @@ -6,6 +6,7 @@ configDotenv(); export const config = { internal_port: parseInt(process.env.APP_PORT) || 4010, development: process.env.NODE_ENV === "production", + testing: process.env.NODE_ENV === "test", jwt_secret: process.env.JWT_SECRET || "secretjwtsecret", phone_validation_countrycode: getPhoneCodeLocale(), postalcode_validation_countrycode: getPostalCodeLocale(), @@ -27,6 +28,7 @@ if (typeof config.development !== "boolean") { if (config.mailer_url == "" || config.mailer_key == "") { errors++; } +console.log(config.testing) function getPhoneCodeLocale(): CountryCode { return (process.env.PHONE_COUNTRYCODE as CountryCode); } diff --git a/src/mailer.ts b/src/mailer.ts index 4d1753a..9782244 100644 --- a/src/mailer.ts +++ b/src/mailer.ts @@ -9,6 +9,7 @@ import { MailSendingError } from './errors/MailErrors'; export class Mailer { public static base: string = config.mailer_url; public static key: string = config.mailer_key; + public static testing: boolean = config.testing; /** * Function for sending a password reset mail. -- 2.47.2 From cedc1750c21ad256c3337f293f06e894e2c2ef9f Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:42:10 +0100 Subject: [PATCH 11/40] Added readme description for testing env ref #154 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2ba341..06a44b1 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ yarn docs | DB_USER | String | N/A | The user for accessing the db | DB_PASSWORD | String | N/A | The user's password for accessing the db | DB_NAME | String | N/A | The db's name -| NODE_ENV | String | dev | The apps env - influences debug info. +| NODE_ENV | String | dev | The apps env - influences debug info. Also when the env is set to "test", mailing errors get ignored. | POSTALCODE_COUNTRYCODE | String/CountryCode | N/A | The countrycode used to validate address's postal codes | PHONE_COUNTRYCODE | String/CountryCode | null (international) | The countrycode used to validate phone numers | SEED_TEST_DATA | Boolean | False | If you want the app to seed some example data set this to true -- 2.47.2 From 6bb3ae8ba992bd6c4d5809d75a264c710999cdcf Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:44:10 +0100 Subject: [PATCH 12/40] Mailer now ignores mailing erros when env is set to test ref #154 --- src/config.ts | 4 +++- src/mailer.ts | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index bb6f2c5..3c4c843 100644 --- a/src/config.ts +++ b/src/config.ts @@ -28,7 +28,9 @@ if (typeof config.development !== "boolean") { if (config.mailer_url == "" || config.mailer_key == "") { errors++; } -console.log(config.testing) +if (config.testing) { + console.log("Discovered testing env. Ignoring all mailing errors!") +} function getPhoneCodeLocale(): CountryCode { return (process.env.PHONE_COUNTRYCODE as CountryCode); } diff --git a/src/mailer.ts b/src/mailer.ts index 9782244..fae23d1 100644 --- a/src/mailer.ts +++ b/src/mailer.ts @@ -23,6 +23,7 @@ export class Mailer { resetKey: token }); } catch (error) { + if (Mailer.testing) { return true; } throw new MailSendingError(); } } @@ -39,6 +40,7 @@ export class Mailer { selfserviceToken: token }); } catch (error) { + if (Mailer.testing) { return true; } throw new MailSendingError(); } } @@ -55,6 +57,7 @@ export class Mailer { selfserviceToken: token }); } catch (error) { + if (Mailer.testing) { return true; } throw new MailSendingError(); } } -- 2.47.2 From 92920273bec409563d1e38ea27f4d30f893598e8 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:51:07 +0100 Subject: [PATCH 13/40] Adjusted tests for the new testing env ref #154 --- src/config.ts | 3 --- src/tests/auth/auth_reset.spec.ts | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/config.ts b/src/config.ts index 3c4c843..28b687e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -28,9 +28,6 @@ if (typeof config.development !== "boolean") { if (config.mailer_url == "" || config.mailer_key == "") { errors++; } -if (config.testing) { - console.log("Discovered testing env. Ignoring all mailing errors!") -} function getPhoneCodeLocale(): CountryCode { return (process.env.PHONE_COUNTRYCODE as CountryCode); } diff --git a/src/tests/auth/auth_reset.spec.ts b/src/tests/auth/auth_reset.spec.ts index 64aa790..59da15a 100644 --- a/src/tests/auth/auth_reset.spec.ts +++ b/src/tests/auth/auth_reset.spec.ts @@ -38,7 +38,7 @@ describe('POST /api/auth/reset valid', () => { it('valid reset token request should return 200 (500 w/o correct auth)', async () => { const res1 = await axios.post(base + '/api/auth/reset', { email: "demo_reset1@dev.lauf-fuer-kaya.de" }, axios_config); reset_token = res1.data.resetToken; - expect(res1.status).toEqual(500); + expect(res1.status).toEqual(200); }); }); // --------------- -- 2.47.2 From c01233b4d663aefece26dbb86f8b6bcd5c916325 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:51:24 +0100 Subject: [PATCH 14/40] Added console logging when a testing env get's discovered ref #154 --- src/app.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/app.ts b/src/app.ts index 6e814b3..9bb6803 100644 --- a/src/app.ts +++ b/src/app.ts @@ -20,6 +20,9 @@ const app = createExpressServer({ async function main() { await loaders(app); + if (config.testing) { + consola.info("🛠[config]: Discovered testing env. Mailing errors will get ignored!") + } app.listen(config.internal_port, () => { consola.success( `⚡️[server]: Server is running at http://localhost:${config.internal_port}` -- 2.47.2 From e5dab3469c3cef6298fc8deb1192a38f7d18406b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:56:34 +0100 Subject: [PATCH 15/40] Changed endpoint url to avoid conflicts ref #154 --- src/controllers/RunnerSelfServiceController.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index f73098f..28f7493 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -56,11 +56,14 @@ export class RunnerSelfServiceController { return responseScans; } - @Post('/runners/me/forgot') + @Post('/runners/forgot') @ResponseSchema(RunnerNotFoundError, { statusCode: 404 }) @OnUndefined(ResponseEmpty) @OpenAPI({ description: 'TODO' }) async requestNewToken(@QueryParam('mail') mail: string) { + if (!mail) { + throw new RunnerNotFoundError(); + } const runner = await this.runnerRepository.findOne({ email: mail }); if (!runner) { throw new RunnerNotFoundError(); } -- 2.47.2 From a95a9b4ec4a3012a91f6f622cfb9f5bff3376344 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:56:55 +0100 Subject: [PATCH 16/40] Added first selfservice forgotten test ref #154 --- .../selfservice/selfservice_forgotten.spec.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/tests/selfservice/selfservice_forgotten.spec.ts diff --git a/src/tests/selfservice/selfservice_forgotten.spec.ts b/src/tests/selfservice/selfservice_forgotten.spec.ts new file mode 100644 index 0000000..f148490 --- /dev/null +++ b/src/tests/selfservice/selfservice_forgotten.spec.ts @@ -0,0 +1,22 @@ +import axios from 'axios'; +import { config } from '../../config'; +const base = "http://localhost:" + config.internal_port + +let access_token; +let axios_config; + +beforeAll(async () => { + const res = await axios.post(base + '/api/auth/login', { username: "demo", password: "demo" }); + access_token = res.data["access_token"]; + axios_config = { + headers: { "authorization": "Bearer " + access_token }, + validateStatus: undefined + }; +}); + +describe('GET /api/runners/me/forgot invalid should return fail', () => { + it('get without mail return 404', async () => { + const res = await axios.get(base + '/api/runners/forgot', axios_config); + expect(res.status).toEqual(404); + expect(res.headers['content-type']).toContain("application/json"); + }); -- 2.47.2 From 1d762f56628eff47f4e1a910c7152bd0158283bd Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:57:25 +0100 Subject: [PATCH 17/40] Renamed test ref #154 --- .../selfservice/{selfservice_org.ts => selfservice_org.spec.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/tests/selfservice/{selfservice_org.ts => selfservice_org.spec.ts} (100%) diff --git a/src/tests/selfservice/selfservice_org.ts b/src/tests/selfservice/selfservice_org.spec.ts similarity index 100% rename from src/tests/selfservice/selfservice_org.ts rename to src/tests/selfservice/selfservice_org.spec.ts -- 2.47.2 From 08957d4dc2951cfeec56a54680c2ae4ef1525ab2 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 14:02:58 +0100 Subject: [PATCH 18/40] Updated to new responsetype ref #154 --- src/tests/selfservice/selfservice_org.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/selfservice/selfservice_org.spec.ts b/src/tests/selfservice/selfservice_org.spec.ts index f269285..f718fac 100644 --- a/src/tests/selfservice/selfservice_org.spec.ts +++ b/src/tests/selfservice/selfservice_org.spec.ts @@ -49,6 +49,6 @@ describe('get valid org w/teams', () => { expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); expect(res.data.name).toEqual(added_org.name); - expect(res.data.teams[0]).toEqual({ name: added_team.name, id: added_team.id }); + expect(res.data.teams[0]).toEqual({ name: added_team.name, id: added_team.id, responseType: "SELFSERVICETEAM" }); }); }); \ No newline at end of file -- 2.47.2 From d0a7e34de8095fca282adefff01fa5f72e7cdba3 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 14:08:39 +0100 Subject: [PATCH 19/40] Added all "negative" tests ref #154 --- .../selfservice/selfservice_forgotten.spec.ts | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/tests/selfservice/selfservice_forgotten.spec.ts b/src/tests/selfservice/selfservice_forgotten.spec.ts index f148490..ef365cf 100644 --- a/src/tests/selfservice/selfservice_forgotten.spec.ts +++ b/src/tests/selfservice/selfservice_forgotten.spec.ts @@ -14,9 +14,39 @@ beforeAll(async () => { }; }); -describe('GET /api/runners/me/forgot invalid should return fail', () => { +describe('POST /api/runners/me/forgot invalid syntax/mail should return fail', () => { it('get without mail return 404', async () => { - const res = await axios.get(base + '/api/runners/forgot', axios_config); + const res = await axios.post(base + '/api/runners/forgot', null, axios_config); expect(res.status).toEqual(404); expect(res.headers['content-type']).toContain("application/json"); }); + it('get without bs mail return 404', async () => { + const res = await axios.post(base + '/api/runners/forgot?mail=asdasdasdasdasd@tester.test.dev.lauf-fuer-kaya.de', null, axios_config); + expect(res.status).toEqual(404); + expect(res.headers['content-type']).toContain("application/json"); + }); +}); +describe('POST /api/runners/me/forgot 2 times within timeout should return fail', () => { + let added_runner; + it('registering as citizen should return 200', async () => { + const res = await axios.post(base + '/api/runners/register', { + "firstname": "string", + "middlename": "string", + "lastname": "string", + "email": "citizen420@dev.lauf-fuer-kaya.de" + }, axios_config); + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + added_runner = res.data; + }); + it('post with valid mail should return 200', async () => { + const res = await axios.post(base + '/api/runners/forgot?mail=' + added_runner.email, null, axios_config); + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + }); + it('2nd post with valid mail should return 400', async () => { + const res = await axios.post(base + '/api/runners/forgot?mail=' + added_runner.email, null, axios_config); + expect(res.status).toEqual(400); + expect(res.headers['content-type']).toContain("application/json"); + }); +}); -- 2.47.2 From bf1ec976e3732b6ac052a55a51ee2ee18a8b1d3d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 14:12:46 +0100 Subject: [PATCH 20/40] Added selfservice forgott positive tests ref #154 --- .../selfservice/selfservice_forgotten.spec.ts | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/tests/selfservice/selfservice_forgotten.spec.ts b/src/tests/selfservice/selfservice_forgotten.spec.ts index ef365cf..8f11d48 100644 --- a/src/tests/selfservice/selfservice_forgotten.spec.ts +++ b/src/tests/selfservice/selfservice_forgotten.spec.ts @@ -14,7 +14,7 @@ beforeAll(async () => { }; }); -describe('POST /api/runners/me/forgot invalid syntax/mail should return fail', () => { +describe('POST /api/runners/me/forgot invalid syntax/mail should fail', () => { it('get without mail return 404', async () => { const res = await axios.post(base + '/api/runners/forgot', null, axios_config); expect(res.status).toEqual(404); @@ -26,7 +26,8 @@ describe('POST /api/runners/me/forgot invalid syntax/mail should return fail', ( expect(res.headers['content-type']).toContain("application/json"); }); }); -describe('POST /api/runners/me/forgot 2 times within timeout should return fail', () => { +// --------------- +describe('POST /api/runners/me/forgot 2 times within timeout should fail', () => { let added_runner; it('registering as citizen should return 200', async () => { const res = await axios.post(base + '/api/runners/register', { @@ -44,9 +45,37 @@ describe('POST /api/runners/me/forgot 2 times within timeout should return fail' expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); }); - it('2nd post with valid mail should return 400', async () => { + it('2nd post with valid mail should return 406', async () => { const res = await axios.post(base + '/api/runners/forgot?mail=' + added_runner.email, null, axios_config); - expect(res.status).toEqual(400); + expect(res.status).toEqual(406); + expect(res.headers['content-type']).toContain("application/json"); + }); +}); + +// --------------- +describe('POST /api/runners/me/forgot valid should return 200', () => { + let added_runner; + let new_token; + it('registering as citizen should return 200', async () => { + const res = await axios.post(base + '/api/runners/register', { + "firstname": "string", + "middlename": "string", + "lastname": "string", + "email": "citizen69@dev.lauf-fuer-kaya.de" + }, axios_config); + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + added_runner = res.data; + }); + it('post with valid mail should return 200', async () => { + const res = await axios.post(base + '/api/runners/forgot?mail=' + added_runner.email, null, axios_config); + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + new_token = res.data.token; + }); + it('get infos with valid jwt should return 200', async () => { + const res = await axios.get(base + '/api/runners/me/' + new_token, axios_config); + expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); }); }); -- 2.47.2 From e4ed20da3e0a9e32a2e4664d50f316f9131564f0 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Mar 2021 13:22:37 +0000 Subject: [PATCH 21/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1194b5b..e2cc6f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,34 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. +#### [v0.5.0](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.5.0) + +- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) +- 📖New license file version [CI SKIP] [skip ci] [`5f5c8a0`](https://git.odit.services/lfk/backend/commit/5f5c8a061eb94361e4cd02e9a6469194a9092513) +- Added selfservice forgott positive tests [`bf1ec97`](https://git.odit.services/lfk/backend/commit/bf1ec976e3732b6ac052a55a51ee2ee18a8b1d3d) +- Added all "negative" tests [`d0a7e34`](https://git.odit.services/lfk/backend/commit/d0a7e34de8095fca282adefff01fa5f72e7cdba3) +- Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) +- Added first selfservice forgotten test [`a95a9b4`](https://git.odit.services/lfk/backend/commit/a95a9b4ec4a3012a91f6f622cfb9f5bff3376344) +- Created basic endpoint for user forgotten mails [`d709971`](https://git.odit.services/lfk/backend/commit/d7099717c2eee8aaf1b580345717cc5acc06dbd2) +- Implemented the "real" errors [`e26b7d4`](https://git.odit.services/lfk/backend/commit/e26b7d4923777a3013368e29c122709de7e1d9da) +- Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) +- Added last reset requested timestamp to runners [`66d6023`](https://git.odit.services/lfk/backend/commit/66d6023335c7a9d1a145c4189b610940ef5a525a) +- Mailer now ignores mailing erros when env is set to test [`6bb3ae8`](https://git.odit.services/lfk/backend/commit/6bb3ae8ba992bd6c4d5809d75a264c710999cdcf) +- Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) +- 🧾New changelog file version [CI SKIP] [skip ci] [`bf71e35`](https://git.odit.services/lfk/backend/commit/bf71e35ecd333d888d63213d69b04fc681a9d0bd) +- Changed endpoint url to avoid conflicts [`e5dab34`](https://git.odit.services/lfk/backend/commit/e5dab3469c3cef6298fc8deb1192a38f7d18406b) +- Adjusted tests for the new testing env [`9292027`](https://git.odit.services/lfk/backend/commit/92920273bec409563d1e38ea27f4d30f893598e8) +- Added testing env check [`3f37212`](https://git.odit.services/lfk/backend/commit/3f372123fd2e1fae467e9cb20985de1eeb9f6a57) +- Added console logging when a testing env get's discovered [`c01233b`](https://git.odit.services/lfk/backend/commit/c01233b4d663aefece26dbb86f8b6bcd5c916325) +- Added not found error logic [`e7f0cb4`](https://git.odit.services/lfk/backend/commit/e7f0cb45c9ac3aa06e2a57786aa1cc51c9d66598) +- Updated to new responsetype [`08957d4`](https://git.odit.services/lfk/backend/commit/08957d4dc2951cfeec56a54680c2ae4ef1525ab2) +- Added readme description for testing env [`cedc175`](https://git.odit.services/lfk/backend/commit/cedc1750c21ad256c3337f293f06e894e2c2ef9f) +- Renamed test [`1d762f5`](https://git.odit.services/lfk/backend/commit/1d762f56628eff47f4e1a910c7152bd0158283bd) + #### [v0.5.0](https://git.odit.services/lfk/backend/compare/v0.4.6...v0.5.0) +> 4 March 2021 + - Merge pull request 'Alpha Release 0.5.0' (#153) from dev into main [`64da0ea`](https://git.odit.services/lfk/backend/commit/64da0eadb313f3bd3ae20a66bcaf4401528008d9) - Removed mail templates [`c2fdfee`](https://git.odit.services/lfk/backend/commit/c2fdfeed4f5fc454b02bc4b198965889c173bbaa) - Removed mail config [`0342757`](https://git.odit.services/lfk/backend/commit/0342757d929b12635c88e74f17495df656865b1a) -- 2.47.2 From 6c43872198c3dba44b3af3a7cfc7b628d5b304a3 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 10 Mar 2021 20:07:46 +0100 Subject: [PATCH 22/40] Changed ci pipeline type to kubernetes ref https://git.odit.services/odit/org/issues/12#issuecomment-4325 --- .drone.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index db1b1e7..2e2942c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,5 +1,6 @@ --- kind: pipeline +type: kubernetes name: tests:node_latest clone: disable: true @@ -20,7 +21,7 @@ trigger: --- kind: pipeline -type: docker +type: kubernetes name: build:dev clone: disable: true @@ -87,7 +88,7 @@ trigger: --- kind: pipeline -type: docker +type: kubernetes name: build:latest clone: disable: true @@ -130,7 +131,7 @@ trigger: --- kind: pipeline -type: docker +type: kubernetes name: build:tags steps: -- 2.47.2 From 5541ae6ebd7f36f4482ae752f358102a18b95de0 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 12 Mar 2021 19:02:45 +0100 Subject: [PATCH 23/40] =?UTF-8?q?Updated=20ci=20with=20new=20kubernetes=20?= =?UTF-8?q?secrets=20=F0=9F=9A=80=F0=9F=9A=80=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref https://git.odit.services/odit/org/issues/12 --- .drone.yml | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/.drone.yml b/.drone.yml index 2e2942c..5f1035b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,3 +1,24 @@ +--- +kind: secret +name: docker_username +get: + path: odit-registry-builder + name: username + +--- +kind: secret +name: docker_password +get: + path: odit-registry-builder + name: password + +--- +kind: secret +name: git_ssh +get: + path: odit-git-bot + name: sshkey + --- kind: pipeline type: kubernetes @@ -37,9 +58,9 @@ steps: depends_on: [clone] settings: username: - from_secret: DOCKER_REGISTRY_USER + from_secret: docker_username password: - from_secret: DOCKER_REGISTRY_PASSWORD + from_secret: docker_password repo: registry.odit.services/lfk/backend tags: - dev @@ -59,7 +80,7 @@ steps: author_email: bot@odit.services remote: git@git.odit.services:lfk/backend.git ssh_key: - from_secret: GITLAB_SSHKEY + from_secret: git_ssh - name: run full license export depends_on: ["clone"] image: node:14.15.1-alpine3.12 @@ -77,7 +98,7 @@ steps: remote: git@git.odit.services:lfk/backend.git skip_verify: true ssh_key: - from_secret: GITLAB_SSHKEY + from_secret: git_ssh trigger: @@ -106,9 +127,9 @@ steps: image: plugins/docker settings: username: - from_secret: DOCKER_REGISTRY_USER + from_secret: docker_username password: - from_secret: DOCKER_REGISTRY_PASSWORD + from_secret: docker_password repo: registry.odit.services/lfk/backend tags: - latest @@ -121,7 +142,7 @@ steps: commit: false remote: git@git.odit.services:lfk/backend.git ssh_key: - from_secret: GITLAB_SSHKEY + from_secret: git_ssh trigger: branch: @@ -140,9 +161,9 @@ steps: depends_on: [clone] settings: username: - from_secret: DOCKER_REGISTRY_USER + from_secret: docker_username password: - from_secret: DOCKER_REGISTRY_PASSWORD + from_secret: docker_password repo: registry.odit.services/lfk/backend tags: - '${DRONE_TAG}' -- 2.47.2 From d5930f7c46f4fc8ed56b6eeec9f784d435fd3b2b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 12 Mar 2021 18:03:04 +0000 Subject: [PATCH 24/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2cc6f1..443e61d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,18 @@ All notable changes to this project will be documented in this file. Dates are d #### [v0.5.0](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.5.0) -- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) - 📖New license file version [CI SKIP] [skip ci] [`5f5c8a0`](https://git.odit.services/lfk/backend/commit/5f5c8a061eb94361e4cd02e9a6469194a9092513) +- Updated ci with new kubernetes secrets 🚀🚀🚀 [`5541ae6`](https://git.odit.services/lfk/backend/commit/5541ae6ebd7f36f4482ae752f358102a18b95de0) - Added selfservice forgott positive tests [`bf1ec97`](https://git.odit.services/lfk/backend/commit/bf1ec976e3732b6ac052a55a51ee2ee18a8b1d3d) - Added all "negative" tests [`d0a7e34`](https://git.odit.services/lfk/backend/commit/d0a7e34de8095fca282adefff01fa5f72e7cdba3) - Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) +- 🧾New changelog file version [CI SKIP] [skip ci] [`e4ed20d`](https://git.odit.services/lfk/backend/commit/e4ed20da3e0a9e32a2e4664d50f316f9131564f0) - Added first selfservice forgotten test [`a95a9b4`](https://git.odit.services/lfk/backend/commit/a95a9b4ec4a3012a91f6f622cfb9f5bff3376344) +- Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) +- Changed ci pipeline type to kubernetes [`6c43872`](https://git.odit.services/lfk/backend/commit/6c43872198c3dba44b3af3a7cfc7b628d5b304a3) +- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) - Created basic endpoint for user forgotten mails [`d709971`](https://git.odit.services/lfk/backend/commit/d7099717c2eee8aaf1b580345717cc5acc06dbd2) - Implemented the "real" errors [`e26b7d4`](https://git.odit.services/lfk/backend/commit/e26b7d4923777a3013368e29c122709de7e1d9da) -- Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) - Added last reset requested timestamp to runners [`66d6023`](https://git.odit.services/lfk/backend/commit/66d6023335c7a9d1a145c4189b610940ef5a525a) - Mailer now ignores mailing erros when env is set to test [`6bb3ae8`](https://git.odit.services/lfk/backend/commit/6bb3ae8ba992bd6c4d5809d75a264c710999cdcf) - Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) -- 2.47.2 From cba4455d53f9a39b6f9993c36b5abd281201dfa1 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 12 Mar 2021 20:09:26 +0100 Subject: [PATCH 25/40] Switched normal images to chached registry --- .drone.yml | 8 ++++---- Dockerfile | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.drone.yml b/.drone.yml index 5f1035b..4f0e5c1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -27,7 +27,7 @@ clone: disable: true steps: - name: checkout pr - image: alpine/git + image: registry.odit.services/hub/alpine/git commands: - git clone $DRONE_REMOTE_URL . - git checkout $DRONE_SOURCE_BRANCH @@ -67,7 +67,7 @@ steps: registry: registry.odit.services - name: run changelog export depends_on: ["clone"] - image: node:latest + image: registry.odit.services/hub/library/node:latest commands: - npx auto-changelog --commit-limit false -p -u --hide-credit - name: push new changelog to repo @@ -83,7 +83,7 @@ steps: from_secret: git_ssh - name: run full license export depends_on: ["clone"] - image: node:14.15.1-alpine3.12 + image: registry.odit.services/hub/library/node:14.15.1-alpine3.12 commands: - yarn - yarn licenses:export @@ -116,7 +116,7 @@ clone: steps: - name: clone - image: alpine/git + image: registry.odit.services/hub/alpine/git commands: - git clone $DRONE_REMOTE_URL . - git checkout dev diff --git a/Dockerfile b/Dockerfile index fe4793a..27a6424 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Typescript Build -FROM node:14.15.1-alpine3.12 +FROM registry.odit.services/hub/library/node:14.15.1-alpine3.12 WORKDIR /app COPY package.json ./ RUN npm i -g pnpm @@ -8,7 +8,7 @@ COPY tsconfig.json ormconfig.js ./ COPY src ./src RUN pnpm run build # final image -FROM node:14.15.1-alpine3.12 +FROM registry.odit.services/hub/library/node:14.15.1-alpine3.12 COPY package.json ormconfig.js ./ RUN npm i -g pnpm RUN pnpm i --prod -- 2.47.2 From ca6fa633a156a265d8f643a5f23090b6ab32260d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 12 Mar 2021 20:20:46 +0100 Subject: [PATCH 26/40] Revert "Switched normal images to chached registry" This reverts commit cba4455d53f9a39b6f9993c36b5abd281201dfa1. --- .drone.yml | 8 ++++---- Dockerfile | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4f0e5c1..5f1035b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -27,7 +27,7 @@ clone: disable: true steps: - name: checkout pr - image: registry.odit.services/hub/alpine/git + image: alpine/git commands: - git clone $DRONE_REMOTE_URL . - git checkout $DRONE_SOURCE_BRANCH @@ -67,7 +67,7 @@ steps: registry: registry.odit.services - name: run changelog export depends_on: ["clone"] - image: registry.odit.services/hub/library/node:latest + image: node:latest commands: - npx auto-changelog --commit-limit false -p -u --hide-credit - name: push new changelog to repo @@ -83,7 +83,7 @@ steps: from_secret: git_ssh - name: run full license export depends_on: ["clone"] - image: registry.odit.services/hub/library/node:14.15.1-alpine3.12 + image: node:14.15.1-alpine3.12 commands: - yarn - yarn licenses:export @@ -116,7 +116,7 @@ clone: steps: - name: clone - image: registry.odit.services/hub/alpine/git + image: alpine/git commands: - git clone $DRONE_REMOTE_URL . - git checkout dev diff --git a/Dockerfile b/Dockerfile index 27a6424..fe4793a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Typescript Build -FROM registry.odit.services/hub/library/node:14.15.1-alpine3.12 +FROM node:14.15.1-alpine3.12 WORKDIR /app COPY package.json ./ RUN npm i -g pnpm @@ -8,7 +8,7 @@ COPY tsconfig.json ormconfig.js ./ COPY src ./src RUN pnpm run build # final image -FROM registry.odit.services/hub/library/node:14.15.1-alpine3.12 +FROM node:14.15.1-alpine3.12 COPY package.json ormconfig.js ./ RUN npm i -g pnpm RUN pnpm i --prod -- 2.47.2 From 076aa87dba1d6fc544e76c16f99c64d37fc82ea0 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Fri, 12 Mar 2021 19:21:08 +0000 Subject: [PATCH 27/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 443e61d..f5a25b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,14 +8,17 @@ All notable changes to this project will be documented in this file. Dates are d - Updated ci with new kubernetes secrets 🚀🚀🚀 [`5541ae6`](https://git.odit.services/lfk/backend/commit/5541ae6ebd7f36f4482ae752f358102a18b95de0) - Added selfservice forgott positive tests [`bf1ec97`](https://git.odit.services/lfk/backend/commit/bf1ec976e3732b6ac052a55a51ee2ee18a8b1d3d) - Added all "negative" tests [`d0a7e34`](https://git.odit.services/lfk/backend/commit/d0a7e34de8095fca282adefff01fa5f72e7cdba3) -- Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) - 🧾New changelog file version [CI SKIP] [skip ci] [`e4ed20d`](https://git.odit.services/lfk/backend/commit/e4ed20da3e0a9e32a2e4664d50f316f9131564f0) - Added first selfservice forgotten test [`a95a9b4`](https://git.odit.services/lfk/backend/commit/a95a9b4ec4a3012a91f6f622cfb9f5bff3376344) -- Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) +- Created basic endpoint for user forgotten mails [`d709971`](https://git.odit.services/lfk/backend/commit/d7099717c2eee8aaf1b580345717cc5acc06dbd2) +- Revert "Switched normal images to chached registry" [`ca6fa63`](https://git.odit.services/lfk/backend/commit/ca6fa633a156a265d8f643a5f23090b6ab32260d) +- Switched normal images to chached registry [`cba4455`](https://git.odit.services/lfk/backend/commit/cba4455d53f9a39b6f9993c36b5abd281201dfa1) +- 🧾New changelog file version [CI SKIP] [skip ci] [`d5930f7`](https://git.odit.services/lfk/backend/commit/d5930f7c46f4fc8ed56b6eeec9f784d435fd3b2b) - Changed ci pipeline type to kubernetes [`6c43872`](https://git.odit.services/lfk/backend/commit/6c43872198c3dba44b3af3a7cfc7b628d5b304a3) - Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) -- Created basic endpoint for user forgotten mails [`d709971`](https://git.odit.services/lfk/backend/commit/d7099717c2eee8aaf1b580345717cc5acc06dbd2) +- Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) - Implemented the "real" errors [`e26b7d4`](https://git.odit.services/lfk/backend/commit/e26b7d4923777a3013368e29c122709de7e1d9da) +- Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) - Added last reset requested timestamp to runners [`66d6023`](https://git.odit.services/lfk/backend/commit/66d6023335c7a9d1a145c4189b610940ef5a525a) - Mailer now ignores mailing erros when env is set to test [`6bb3ae8`](https://git.odit.services/lfk/backend/commit/6bb3ae8ba992bd6c4d5809d75a264c710999cdcf) - Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) -- 2.47.2 From f7af77710421d7aae5efb048e0622cd067fc20eb Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Mon, 15 Mar 2021 16:03:15 +0100 Subject: [PATCH 28/40] =?UTF-8?q?Applied=20Docker=20MTU=20fix=20?= =?UTF-8?q?=F0=9F=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.drone.yml b/.drone.yml index 5f1035b..1fd9285 100644 --- a/.drone.yml +++ b/.drone.yml @@ -65,6 +65,7 @@ steps: tags: - dev registry: registry.odit.services + mtu: 1000 - name: run changelog export depends_on: ["clone"] image: node:latest @@ -134,6 +135,7 @@ steps: tags: - latest registry: registry.odit.services + mtu: 1000 - name: push merge to repo depends_on: ["clone"] image: appleboy/drone-git-push @@ -168,6 +170,7 @@ steps: tags: - '${DRONE_TAG}' registry: registry.odit.services + mtu: 1000 - name: trigger node lib build image: idcooldi/drone-webhook settings: -- 2.47.2 From a1a94ec9dafecd9b4c453cc8cfe32c2e90acccf5 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Mon, 15 Mar 2021 15:03:59 +0000 Subject: [PATCH 29/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5a25b1..8863841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,18 +8,20 @@ All notable changes to this project will be documented in this file. Dates are d - Updated ci with new kubernetes secrets 🚀🚀🚀 [`5541ae6`](https://git.odit.services/lfk/backend/commit/5541ae6ebd7f36f4482ae752f358102a18b95de0) - Added selfservice forgott positive tests [`bf1ec97`](https://git.odit.services/lfk/backend/commit/bf1ec976e3732b6ac052a55a51ee2ee18a8b1d3d) - Added all "negative" tests [`d0a7e34`](https://git.odit.services/lfk/backend/commit/d0a7e34de8095fca282adefff01fa5f72e7cdba3) +- Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) - 🧾New changelog file version [CI SKIP] [skip ci] [`e4ed20d`](https://git.odit.services/lfk/backend/commit/e4ed20da3e0a9e32a2e4664d50f316f9131564f0) - Added first selfservice forgotten test [`a95a9b4`](https://git.odit.services/lfk/backend/commit/a95a9b4ec4a3012a91f6f622cfb9f5bff3376344) - Created basic endpoint for user forgotten mails [`d709971`](https://git.odit.services/lfk/backend/commit/d7099717c2eee8aaf1b580345717cc5acc06dbd2) -- Revert "Switched normal images to chached registry" [`ca6fa63`](https://git.odit.services/lfk/backend/commit/ca6fa633a156a265d8f643a5f23090b6ab32260d) -- Switched normal images to chached registry [`cba4455`](https://git.odit.services/lfk/backend/commit/cba4455d53f9a39b6f9993c36b5abd281201dfa1) -- 🧾New changelog file version [CI SKIP] [skip ci] [`d5930f7`](https://git.odit.services/lfk/backend/commit/d5930f7c46f4fc8ed56b6eeec9f784d435fd3b2b) -- Changed ci pipeline type to kubernetes [`6c43872`](https://git.odit.services/lfk/backend/commit/6c43872198c3dba44b3af3a7cfc7b628d5b304a3) -- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) -- Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) - Implemented the "real" errors [`e26b7d4`](https://git.odit.services/lfk/backend/commit/e26b7d4923777a3013368e29c122709de7e1d9da) - Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) - Added last reset requested timestamp to runners [`66d6023`](https://git.odit.services/lfk/backend/commit/66d6023335c7a9d1a145c4189b610940ef5a525a) +- Revert "Switched normal images to chached registry" [`ca6fa63`](https://git.odit.services/lfk/backend/commit/ca6fa633a156a265d8f643a5f23090b6ab32260d) +- Switched normal images to chached registry [`cba4455`](https://git.odit.services/lfk/backend/commit/cba4455d53f9a39b6f9993c36b5abd281201dfa1) +- 🧾New changelog file version [CI SKIP] [skip ci] [`076aa87`](https://git.odit.services/lfk/backend/commit/076aa87dba1d6fc544e76c16f99c64d37fc82ea0) +- 🧾New changelog file version [CI SKIP] [skip ci] [`d5930f7`](https://git.odit.services/lfk/backend/commit/d5930f7c46f4fc8ed56b6eeec9f784d435fd3b2b) +- Changed ci pipeline type to kubernetes [`6c43872`](https://git.odit.services/lfk/backend/commit/6c43872198c3dba44b3af3a7cfc7b628d5b304a3) +- Applied Docker MTU fix 🛠 [`f7af777`](https://git.odit.services/lfk/backend/commit/f7af77710421d7aae5efb048e0622cd067fc20eb) +- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) - Mailer now ignores mailing erros when env is set to test [`6bb3ae8`](https://git.odit.services/lfk/backend/commit/6bb3ae8ba992bd6c4d5809d75a264c710999cdcf) - Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) - 🧾New changelog file version [CI SKIP] [skip ci] [`bf71e35`](https://git.odit.services/lfk/backend/commit/bf71e35ecd333d888d63213d69b04fc681a9d0bd) -- 2.47.2 From c5178e01814cedaa4402773b10f24d186714c1d2 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 11:44:54 +0100 Subject: [PATCH 30/40] Added scanstation me endpoint ref #157 --- src/controllers/ScanStationController.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/controllers/ScanStationController.ts b/src/controllers/ScanStationController.ts index 80aa6e3..30c10d3 100644 --- a/src/controllers/ScanStationController.ts +++ b/src/controllers/ScanStationController.ts @@ -1,8 +1,10 @@ -import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam } from 'routing-controllers'; +import { Request } from 'express'; +import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam, Req, UseBefore } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { ScanStationHasScansError, ScanStationIdsNotMatchingError, ScanStationNotFoundError } from '../errors/ScanStationErrors'; import { TrackNotFoundError } from '../errors/TrackErrors'; +import ScanAuth from '../middlewares/ScanAuth'; import { CreateScanStation } from '../models/actions/create/CreateScanStation'; import { UpdateScanStation } from '../models/actions/update/UpdateScanStation'; import { ScanStation } from '../models/entities/ScanStation'; @@ -47,6 +49,18 @@ export class ScanStationController { return scan.toResponse(); } + @Get('/:id/me') + @UseBefore(ScanAuth) + @ResponseSchema(ResponseScanStation) + @ResponseSchema(ScanStationNotFoundError, { statusCode: 404 }) + @OnUndefined(ScanStationNotFoundError) + @OpenAPI({ description: 'Lists basic information about the station whose token got provided.
This includes it\'s associated track.
Just set the ID to 0.', security: [{ "ScanApiToken": [] }] }) + async getMe(@Req() req: Request) { + let scan = await this.stationRepository.findOne({ id: parseInt(req.headers["station_id"].toString()) }, { relations: ['track'] }) + if (!scan) { throw new ScanStationNotFoundError(); } + return scan.toResponse(); + } + @Post() @Authorized("STATION:CREATE") @ResponseSchema(ResponseScanStation) -- 2.47.2 From 8ba7ee1d481e44e686489e237980b21aaaf6071c Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 11:45:40 +0100 Subject: [PATCH 31/40] Now adding station id to headers of request for scan auth ref #157 --- src/middlewares/ScanAuth.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middlewares/ScanAuth.ts b/src/middlewares/ScanAuth.ts index 2f39bbf..05793f0 100644 --- a/src/middlewares/ScanAuth.ts +++ b/src/middlewares/ScanAuth.ts @@ -62,7 +62,7 @@ const ScanAuth = async (req: Request, res: Response, next: () => void) => { res.status(401).send("Api token invalid."); return; } - + req.headers["station_id"] = station.id.toString(); next(); } } -- 2.47.2 From 757332ed2b3325d8730ef1b284ac6ba40356df93 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 11:51:31 +0100 Subject: [PATCH 32/40] Added tests for the new endpoint ref #157 --- .../scanstations/scanstations_get.spec.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/tests/scanstations/scanstations_get.spec.ts b/src/tests/scanstations/scanstations_get.spec.ts index 7280c31..9aff25b 100644 --- a/src/tests/scanstations/scanstations_get.spec.ts +++ b/src/tests/scanstations/scanstations_get.spec.ts @@ -56,4 +56,34 @@ describe('adding + getting stations', () => { expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); }); +}); +// --------------- +describe('adding + getting via me endpoint', () => { + let added_track; + let added_station; + it('creating a track should return 200', async () => { + const res1 = await axios.post(base + '/api/tracks', { + "name": "test123", + "distance": 123 + }, axios_config); + added_track = res1.data + expect(res1.status).toEqual(200); + expect(res1.headers['content-type']).toContain("application/json") + }); + it('correct description and track input for station creation return 200', async () => { + const res = await axios.post(base + '/api/stations', { + "track": added_track.id, + "description": "I am but a simple test." + }, axios_config); + added_station = res.data; + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json") + }); + it('correct description and track input for station creation return 200', async () => { + const res = await axios.get(base + '/api/stations/0/me', { headers: { "authorization": "Bearer " + added_station.key } }); + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json") + added_station.key = "Only visible on creation."; + expect(res.data).toEqual(added_station); + }); }); \ No newline at end of file -- 2.47.2 From 2cb7ec7317d8a48364261506facb2c11c7cf895f Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 16:49:19 +0100 Subject: [PATCH 33/40] As requested by @philpp ref #157 --- .../RunnerSelfServiceController.ts | 22 +++++++++++++++++-- src/controllers/ScanStationController.ts | 16 +------------- .../scanstations/scanstations_get.spec.ts | 2 +- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index 28f7493..6a0818f 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -1,5 +1,6 @@ +import { Request } from "express"; import * as jwt from "jsonwebtoken"; -import { Body, Get, JsonController, OnUndefined, Param, Post, QueryParam } from 'routing-controllers'; +import { Body, Get, JsonController, OnUndefined, Param, Post, QueryParam, Req, UseBefore } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { config } from '../config'; @@ -7,23 +8,27 @@ import { InvalidCredentialsError, JwtNotProvidedError } from '../errors/AuthErro import { MailSendingError } from '../errors/MailErrors'; import { RunnerEmailNeededError, RunnerNotFoundError, RunnerSelfserviceTimeoutError } from '../errors/RunnerErrors'; import { RunnerOrganizationNotFoundError } from '../errors/RunnerOrganizationErrors'; +import { ScanStationNotFoundError } from '../errors/ScanStationErrors'; import { JwtCreator } from '../jwtcreator'; import { Mailer } from '../mailer'; +import ScanAuth from '../middlewares/ScanAuth'; import { CreateSelfServiceCitizenRunner } from '../models/actions/create/CreateSelfServiceCitizenRunner'; import { CreateSelfServiceRunner } from '../models/actions/create/CreateSelfServiceRunner'; import { Runner } from '../models/entities/Runner'; import { RunnerGroup } from '../models/entities/RunnerGroup'; import { RunnerOrganization } from '../models/entities/RunnerOrganization'; +import { ScanStation } from '../models/entities/ScanStation'; import { ResponseEmpty } from '../models/responses/ResponseEmpty'; +import { ResponseScanStation } from '../models/responses/ResponseScanStation'; import { ResponseSelfServiceOrganisation } from '../models/responses/ResponseSelfServiceOrganisation'; import { ResponseSelfServiceRunner } from '../models/responses/ResponseSelfServiceRunner'; import { ResponseSelfServiceScan } from '../models/responses/ResponseSelfServiceScan'; - @JsonController() export class RunnerSelfServiceController { private runnerRepository: Repository; private orgRepository: Repository; + private stationRepository: Repository; /** * Gets the repository of this controller's model/entity. @@ -31,6 +36,7 @@ export class RunnerSelfServiceController { constructor() { this.runnerRepository = getConnectionManager().get().getRepository(Runner); this.orgRepository = getConnectionManager().get().getRepository(RunnerOrganization); + this.stationRepository = getConnectionManager().get().getRepository(ScanStation); } @Get('/runners/me/:jwt') @@ -56,6 +62,18 @@ export class RunnerSelfServiceController { return responseScans; } + @Get('/stations/me') + @UseBefore(ScanAuth) + @ResponseSchema(ResponseScanStation) + @ResponseSchema(ScanStationNotFoundError, { statusCode: 404 }) + @OnUndefined(ScanStationNotFoundError) + @OpenAPI({ description: 'Lists basic information about the station whose token got provided.
This includes it\'s associated track.
Just set the ID to 0.', security: [{ "ScanApiToken": [] }] }) + async getStationMe(@Req() req: Request) { + let scan = await this.stationRepository.findOne({ id: parseInt(req.headers["station_id"].toString()) }, { relations: ['track'] }) + if (!scan) { throw new ScanStationNotFoundError(); } + return scan.toResponse(); + } + @Post('/runners/forgot') @ResponseSchema(RunnerNotFoundError, { statusCode: 404 }) @OnUndefined(ResponseEmpty) diff --git a/src/controllers/ScanStationController.ts b/src/controllers/ScanStationController.ts index 30c10d3..80aa6e3 100644 --- a/src/controllers/ScanStationController.ts +++ b/src/controllers/ScanStationController.ts @@ -1,10 +1,8 @@ -import { Request } from 'express'; -import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam, Req, UseBefore } from 'routing-controllers'; +import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam } from 'routing-controllers'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { ScanStationHasScansError, ScanStationIdsNotMatchingError, ScanStationNotFoundError } from '../errors/ScanStationErrors'; import { TrackNotFoundError } from '../errors/TrackErrors'; -import ScanAuth from '../middlewares/ScanAuth'; import { CreateScanStation } from '../models/actions/create/CreateScanStation'; import { UpdateScanStation } from '../models/actions/update/UpdateScanStation'; import { ScanStation } from '../models/entities/ScanStation'; @@ -49,18 +47,6 @@ export class ScanStationController { return scan.toResponse(); } - @Get('/:id/me') - @UseBefore(ScanAuth) - @ResponseSchema(ResponseScanStation) - @ResponseSchema(ScanStationNotFoundError, { statusCode: 404 }) - @OnUndefined(ScanStationNotFoundError) - @OpenAPI({ description: 'Lists basic information about the station whose token got provided.
This includes it\'s associated track.
Just set the ID to 0.', security: [{ "ScanApiToken": [] }] }) - async getMe(@Req() req: Request) { - let scan = await this.stationRepository.findOne({ id: parseInt(req.headers["station_id"].toString()) }, { relations: ['track'] }) - if (!scan) { throw new ScanStationNotFoundError(); } - return scan.toResponse(); - } - @Post() @Authorized("STATION:CREATE") @ResponseSchema(ResponseScanStation) diff --git a/src/tests/scanstations/scanstations_get.spec.ts b/src/tests/scanstations/scanstations_get.spec.ts index 9aff25b..3cb24ad 100644 --- a/src/tests/scanstations/scanstations_get.spec.ts +++ b/src/tests/scanstations/scanstations_get.spec.ts @@ -80,7 +80,7 @@ describe('adding + getting via me endpoint', () => { expect(res.headers['content-type']).toContain("application/json") }); it('correct description and track input for station creation return 200', async () => { - const res = await axios.get(base + '/api/stations/0/me', { headers: { "authorization": "Bearer " + added_station.key } }); + const res = await axios.get(base + '/api/stations/me', { headers: { "authorization": "Bearer " + added_station.key } }); expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json") added_station.key = "Only visible on creation."; -- 2.47.2 From 94001a48f1b314e91ea5ec982e5585124f9541b6 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 16:50:48 +0100 Subject: [PATCH 34/40] Updated description ref #157 --- src/controllers/RunnerSelfServiceController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index 6a0818f..878cf1b 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -67,7 +67,7 @@ export class RunnerSelfServiceController { @ResponseSchema(ResponseScanStation) @ResponseSchema(ScanStationNotFoundError, { statusCode: 404 }) @OnUndefined(ScanStationNotFoundError) - @OpenAPI({ description: 'Lists basic information about the station whose token got provided.
This includes it\'s associated track.
Just set the ID to 0.', security: [{ "ScanApiToken": [] }] }) + @OpenAPI({ description: 'Lists basic information about the station whose token got provided.
This includes it\'s associated track.', security: [{ "ScanApiToken": [] }] }) async getStationMe(@Req() req: Request) { let scan = await this.stationRepository.findOne({ id: parseInt(req.headers["station_id"].toString()) }, { relations: ['track'] }) if (!scan) { throw new ScanStationNotFoundError(); } -- 2.47.2 From a7958eecd65116ab937f640cbebcae1962cb86c8 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 15:52:53 +0000 Subject: [PATCH 35/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8863841..7bc4b69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,32 +4,39 @@ All notable changes to this project will be documented in this file. Dates are d #### [v0.5.0](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.5.0) +- Merge pull request 'Scanstation "me" endpoint feature/157-scanstation_me' (#158) from feature/157-scanstation_me into dev [`13e8399`](https://git.odit.services/lfk/backend/commit/13e839902c063057e902fdb52b403be081d1667e) - 📖New license file version [CI SKIP] [skip ci] [`5f5c8a0`](https://git.odit.services/lfk/backend/commit/5f5c8a061eb94361e4cd02e9a6469194a9092513) +- As requested by @philpp [`2cb7ec7`](https://git.odit.services/lfk/backend/commit/2cb7ec7317d8a48364261506facb2c11c7cf895f) - Updated ci with new kubernetes secrets 🚀🚀🚀 [`5541ae6`](https://git.odit.services/lfk/backend/commit/5541ae6ebd7f36f4482ae752f358102a18b95de0) - Added selfservice forgott positive tests [`bf1ec97`](https://git.odit.services/lfk/backend/commit/bf1ec976e3732b6ac052a55a51ee2ee18a8b1d3d) - Added all "negative" tests [`d0a7e34`](https://git.odit.services/lfk/backend/commit/d0a7e34de8095fca282adefff01fa5f72e7cdba3) - Added mailer functions [`8376513`](https://git.odit.services/lfk/backend/commit/83765136ccacd82ba6a8f9fb43eed78191ee0aa5) +- Added tests for the new endpoint [`757332e`](https://git.odit.services/lfk/backend/commit/757332ed2b3325d8730ef1b284ac6ba40356df93) - 🧾New changelog file version [CI SKIP] [skip ci] [`e4ed20d`](https://git.odit.services/lfk/backend/commit/e4ed20da3e0a9e32a2e4664d50f316f9131564f0) - Added first selfservice forgotten test [`a95a9b4`](https://git.odit.services/lfk/backend/commit/a95a9b4ec4a3012a91f6f622cfb9f5bff3376344) - Created basic endpoint for user forgotten mails [`d709971`](https://git.odit.services/lfk/backend/commit/d7099717c2eee8aaf1b580345717cc5acc06dbd2) - Implemented the "real" errors [`e26b7d4`](https://git.odit.services/lfk/backend/commit/e26b7d4923777a3013368e29c122709de7e1d9da) - Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) +- Added scanstation me endpoint [`c5178e0`](https://git.odit.services/lfk/backend/commit/c5178e01814cedaa4402773b10f24d186714c1d2) - Added last reset requested timestamp to runners [`66d6023`](https://git.odit.services/lfk/backend/commit/66d6023335c7a9d1a145c4189b610940ef5a525a) - Revert "Switched normal images to chached registry" [`ca6fa63`](https://git.odit.services/lfk/backend/commit/ca6fa633a156a265d8f643a5f23090b6ab32260d) - Switched normal images to chached registry [`cba4455`](https://git.odit.services/lfk/backend/commit/cba4455d53f9a39b6f9993c36b5abd281201dfa1) +- 🧾New changelog file version [CI SKIP] [skip ci] [`a1a94ec`](https://git.odit.services/lfk/backend/commit/a1a94ec9dafecd9b4c453cc8cfe32c2e90acccf5) - 🧾New changelog file version [CI SKIP] [skip ci] [`076aa87`](https://git.odit.services/lfk/backend/commit/076aa87dba1d6fc544e76c16f99c64d37fc82ea0) - 🧾New changelog file version [CI SKIP] [skip ci] [`d5930f7`](https://git.odit.services/lfk/backend/commit/d5930f7c46f4fc8ed56b6eeec9f784d435fd3b2b) - Changed ci pipeline type to kubernetes [`6c43872`](https://git.odit.services/lfk/backend/commit/6c43872198c3dba44b3af3a7cfc7b628d5b304a3) -- Applied Docker MTU fix 🛠 [`f7af777`](https://git.odit.services/lfk/backend/commit/f7af77710421d7aae5efb048e0622cd067fc20eb) -- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) - Mailer now ignores mailing erros when env is set to test [`6bb3ae8`](https://git.odit.services/lfk/backend/commit/6bb3ae8ba992bd6c4d5809d75a264c710999cdcf) - Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) - 🧾New changelog file version [CI SKIP] [skip ci] [`bf71e35`](https://git.odit.services/lfk/backend/commit/bf71e35ecd333d888d63213d69b04fc681a9d0bd) - Changed endpoint url to avoid conflicts [`e5dab34`](https://git.odit.services/lfk/backend/commit/e5dab3469c3cef6298fc8deb1192a38f7d18406b) - Adjusted tests for the new testing env [`9292027`](https://git.odit.services/lfk/backend/commit/92920273bec409563d1e38ea27f4d30f893598e8) - Added testing env check [`3f37212`](https://git.odit.services/lfk/backend/commit/3f372123fd2e1fae467e9cb20985de1eeb9f6a57) +- Applied Docker MTU fix 🛠 [`f7af777`](https://git.odit.services/lfk/backend/commit/f7af77710421d7aae5efb048e0622cd067fc20eb) - Added console logging when a testing env get's discovered [`c01233b`](https://git.odit.services/lfk/backend/commit/c01233b4d663aefece26dbb86f8b6bcd5c916325) - Added not found error logic [`e7f0cb4`](https://git.odit.services/lfk/backend/commit/e7f0cb45c9ac3aa06e2a57786aa1cc51c9d66598) +- Updated description [`94001a4`](https://git.odit.services/lfk/backend/commit/94001a48f1b314e91ea5ec982e5585124f9541b6) +- Now adding station id to headers of request for scan auth [`8ba7ee1`](https://git.odit.services/lfk/backend/commit/8ba7ee1d481e44e686489e237980b21aaaf6071c) +- Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) - Updated to new responsetype [`08957d4`](https://git.odit.services/lfk/backend/commit/08957d4dc2951cfeec56a54680c2ae4ef1525ab2) - Added readme description for testing env [`cedc175`](https://git.odit.services/lfk/backend/commit/cedc1750c21ad256c3337f293f06e894e2c2ef9f) - Renamed test [`1d762f5`](https://git.odit.services/lfk/backend/commit/1d762f56628eff47f4e1a910c7152bd0158283bd) -- 2.47.2 From 623b5a1873afa73a984251543995b7da1cfdb5c9 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 17:12:01 +0100 Subject: [PATCH 36/40] =?UTF-8?q?=F0=9F=9A=80Bumped=20version=20to=20v0.6.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f6a7d9..1b8bfc2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@odit/lfk-backend", - "version": "0.5.0", + "version": "0.6.0", "main": "src/app.ts", "repository": "https://git.odit.services/lfk/backend", "author": { -- 2.47.2 From 486e450a58d3671dc867ae1a99d052d9fe814c1a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 16:13:23 +0000 Subject: [PATCH 37/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bc4b69..6e60dbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,10 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. -#### [v0.5.0](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.5.0) +#### [v0.6.0](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.6.0) +- 🧾New changelog file version [CI SKIP] [skip ci] [`a7958ee`](https://git.odit.services/lfk/backend/commit/a7958eecd65116ab937f640cbebcae1962cb86c8) +- 🚀Bumped version to v0.6.0 [`623b5a1`](https://git.odit.services/lfk/backend/commit/623b5a1873afa73a984251543995b7da1cfdb5c9) - Merge pull request 'Scanstation "me" endpoint feature/157-scanstation_me' (#158) from feature/157-scanstation_me into dev [`13e8399`](https://git.odit.services/lfk/backend/commit/13e839902c063057e902fdb52b403be081d1667e) - 📖New license file version [CI SKIP] [skip ci] [`5f5c8a0`](https://git.odit.services/lfk/backend/commit/5f5c8a061eb94361e4cd02e9a6469194a9092513) - As requested by @philpp [`2cb7ec7`](https://git.odit.services/lfk/backend/commit/2cb7ec7317d8a48364261506facb2c11c7cf895f) @@ -32,11 +34,11 @@ All notable changes to this project will be documented in this file. Dates are d - Adjusted tests for the new testing env [`9292027`](https://git.odit.services/lfk/backend/commit/92920273bec409563d1e38ea27f4d30f893598e8) - Added testing env check [`3f37212`](https://git.odit.services/lfk/backend/commit/3f372123fd2e1fae467e9cb20985de1eeb9f6a57) - Applied Docker MTU fix 🛠 [`f7af777`](https://git.odit.services/lfk/backend/commit/f7af77710421d7aae5efb048e0622cd067fc20eb) -- Added console logging when a testing env get's discovered [`c01233b`](https://git.odit.services/lfk/backend/commit/c01233b4d663aefece26dbb86f8b6bcd5c916325) -- Added not found error logic [`e7f0cb4`](https://git.odit.services/lfk/backend/commit/e7f0cb45c9ac3aa06e2a57786aa1cc51c9d66598) - Updated description [`94001a4`](https://git.odit.services/lfk/backend/commit/94001a48f1b314e91ea5ec982e5585124f9541b6) - Now adding station id to headers of request for scan auth [`8ba7ee1`](https://git.odit.services/lfk/backend/commit/8ba7ee1d481e44e686489e237980b21aaaf6071c) - Merge pull request 'selfservice forgotten mails feature/154-selfservice_forgotten' (#155) from feature/154-selfservice_forgotten into dev [`cb6e78f`](https://git.odit.services/lfk/backend/commit/cb6e78fc176ec9efe94311b64286020b3c5bf633) +- Added console logging when a testing env get's discovered [`c01233b`](https://git.odit.services/lfk/backend/commit/c01233b4d663aefece26dbb86f8b6bcd5c916325) +- Added not found error logic [`e7f0cb4`](https://git.odit.services/lfk/backend/commit/e7f0cb45c9ac3aa06e2a57786aa1cc51c9d66598) - Updated to new responsetype [`08957d4`](https://git.odit.services/lfk/backend/commit/08957d4dc2951cfeec56a54680c2ae4ef1525ab2) - Added readme description for testing env [`cedc175`](https://git.odit.services/lfk/backend/commit/cedc1750c21ad256c3337f293f06e894e2c2ef9f) - Renamed test [`1d762f5`](https://git.odit.services/lfk/backend/commit/1d762f56628eff47f4e1a910c7152bd0158283bd) -- 2.47.2 From 46b7aceb0b86b03688faf0ec6661e4c9fbc6115c Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 17:40:01 +0100 Subject: [PATCH 38/40] Scanauth return objects --- src/middlewares/ScanAuth.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/middlewares/ScanAuth.ts b/src/middlewares/ScanAuth.ts index 05793f0..eefe69c 100644 --- a/src/middlewares/ScanAuth.ts +++ b/src/middlewares/ScanAuth.ts @@ -15,14 +15,14 @@ import authchecker from './authchecker'; const ScanAuth = async (req: Request, res: Response, next: () => void) => { let provided_token: string = req.headers["authorization"]; if (provided_token == "" || provided_token === undefined || provided_token === null) { - res.status(401).send("No api token provided."); + res.status(401).send({ http_code: 401, short: "no_token", message: "No api token provided." }); return; } try { provided_token = provided_token.replace("Bearer ", ""); } catch (error) { - res.status(401).send("No valid jwt or api token provided."); + res.status(401).send({ http_code: 401, short: "no_token", message: "No valid jwt or api token provided." }); return; } @@ -32,7 +32,7 @@ const ScanAuth = async (req: Request, res: Response, next: () => void) => { } finally { if (prefix == "" || prefix == undefined || prefix == null) { - res.status(401).send("Api token non-existent or invalid syntax."); + res.status(401).send({ http_code: 401, short: "invalid_token", message: "Api token non-existent or invalid syntax." }); return; } } @@ -46,7 +46,7 @@ const ScanAuth = async (req: Request, res: Response, next: () => void) => { } finally { if (user_authorized == false) { - res.status(401).send("Api token non-existent or invalid syntax."); + res.status(401).send({ http_code: 401, short: "invalid_token", message: "Api token non-existent or invalid syntax." }); return; } else { @@ -56,10 +56,10 @@ const ScanAuth = async (req: Request, res: Response, next: () => void) => { } else { if (station.enabled == false) { - res.status(401).send("Station disabled."); + res.status(401).send({ http_code: 401, short: "station_disabled", message: "Station is disabled." }); } if (!(await argon2.verify(station.key, provided_token))) { - res.status(401).send("Api token invalid."); + res.status(401).send({ http_code: 401, short: "invalid_token", message: "Api token non-existent or invalid syntax." }); return; } req.headers["station_id"] = station.id.toString(); -- 2.47.2 From ce3ca9f1c86a6fe72e4dd77e3a0d60bf1e1bf542 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 17:40:13 +0100 Subject: [PATCH 39/40] =?UTF-8?q?=F0=9F=9A=80Bumped=20version=20to=20v0.6.?= =?UTF-8?q?1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b8bfc2..cdd3518 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@odit/lfk-backend", - "version": "0.6.0", + "version": "0.6.1", "main": "src/app.ts", "repository": "https://git.odit.services/lfk/backend", "author": { -- 2.47.2 From 54988ba0fe012ce87d44c9068f7546a9be73723c Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 16:41:01 +0000 Subject: [PATCH 40/40] =?UTF-8?q?=F0=9F=A7=BENew=20changelog=20file=20vers?= =?UTF-8?q?ion=20[CI=20SKIP]=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e60dbb..9db607f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,8 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. -#### [v0.6.0](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.6.0) +#### [v0.6.1](https://git.odit.services/lfk/backend/compare/v0.5.0...v0.6.1) -- 🧾New changelog file version [CI SKIP] [skip ci] [`a7958ee`](https://git.odit.services/lfk/backend/commit/a7958eecd65116ab937f640cbebcae1962cb86c8) -- 🚀Bumped version to v0.6.0 [`623b5a1`](https://git.odit.services/lfk/backend/commit/623b5a1873afa73a984251543995b7da1cfdb5c9) -- Merge pull request 'Scanstation "me" endpoint feature/157-scanstation_me' (#158) from feature/157-scanstation_me into dev [`13e8399`](https://git.odit.services/lfk/backend/commit/13e839902c063057e902fdb52b403be081d1667e) - 📖New license file version [CI SKIP] [skip ci] [`5f5c8a0`](https://git.odit.services/lfk/backend/commit/5f5c8a061eb94361e4cd02e9a6469194a9092513) - As requested by @philpp [`2cb7ec7`](https://git.odit.services/lfk/backend/commit/2cb7ec7317d8a48364261506facb2c11c7cf895f) - Updated ci with new kubernetes secrets 🚀🚀🚀 [`5541ae6`](https://git.odit.services/lfk/backend/commit/5541ae6ebd7f36f4482ae752f358102a18b95de0) @@ -21,18 +18,24 @@ All notable changes to this project will be documented in this file. Dates are d - Runner controller now uses the Mailer functions [`a343747`](https://git.odit.services/lfk/backend/commit/a3437475caf6b435ae4bdf6d48aeb7da7d43b25f) - Added scanstation me endpoint [`c5178e0`](https://git.odit.services/lfk/backend/commit/c5178e01814cedaa4402773b10f24d186714c1d2) - Added last reset requested timestamp to runners [`66d6023`](https://git.odit.services/lfk/backend/commit/66d6023335c7a9d1a145c4189b610940ef5a525a) +- Scanauth return objects [`46b7ace`](https://git.odit.services/lfk/backend/commit/46b7aceb0b86b03688faf0ec6661e4c9fbc6115c) - Revert "Switched normal images to chached registry" [`ca6fa63`](https://git.odit.services/lfk/backend/commit/ca6fa633a156a265d8f643a5f23090b6ab32260d) - Switched normal images to chached registry [`cba4455`](https://git.odit.services/lfk/backend/commit/cba4455d53f9a39b6f9993c36b5abd281201dfa1) +- 🧾New changelog file version [CI SKIP] [skip ci] [`a7958ee`](https://git.odit.services/lfk/backend/commit/a7958eecd65116ab937f640cbebcae1962cb86c8) - 🧾New changelog file version [CI SKIP] [skip ci] [`a1a94ec`](https://git.odit.services/lfk/backend/commit/a1a94ec9dafecd9b4c453cc8cfe32c2e90acccf5) - 🧾New changelog file version [CI SKIP] [skip ci] [`076aa87`](https://git.odit.services/lfk/backend/commit/076aa87dba1d6fc544e76c16f99c64d37fc82ea0) +- 🧾New changelog file version [CI SKIP] [skip ci] [`486e450`](https://git.odit.services/lfk/backend/commit/486e450a58d3671dc867ae1a99d052d9fe814c1a) +- Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) +- Added testing env check [`3f37212`](https://git.odit.services/lfk/backend/commit/3f372123fd2e1fae467e9cb20985de1eeb9f6a57) +- 🚀Bumped version to v0.6.1 [`ce3ca9f`](https://git.odit.services/lfk/backend/commit/ce3ca9f1c86a6fe72e4dd77e3a0d60bf1e1bf542) +- 🚀Bumped version to v0.6.0 [`623b5a1`](https://git.odit.services/lfk/backend/commit/623b5a1873afa73a984251543995b7da1cfdb5c9) +- Merge pull request 'Scanstation "me" endpoint feature/157-scanstation_me' (#158) from feature/157-scanstation_me into dev [`13e8399`](https://git.odit.services/lfk/backend/commit/13e839902c063057e902fdb52b403be081d1667e) - 🧾New changelog file version [CI SKIP] [skip ci] [`d5930f7`](https://git.odit.services/lfk/backend/commit/d5930f7c46f4fc8ed56b6eeec9f784d435fd3b2b) - Changed ci pipeline type to kubernetes [`6c43872`](https://git.odit.services/lfk/backend/commit/6c43872198c3dba44b3af3a7cfc7b628d5b304a3) - Mailer now ignores mailing erros when env is set to test [`6bb3ae8`](https://git.odit.services/lfk/backend/commit/6bb3ae8ba992bd6c4d5809d75a264c710999cdcf) -- Updated request timeout [`ffcd45e`](https://git.odit.services/lfk/backend/commit/ffcd45e5724fccdec9b1dbc48f1320525dcd7288) - 🧾New changelog file version [CI SKIP] [skip ci] [`bf71e35`](https://git.odit.services/lfk/backend/commit/bf71e35ecd333d888d63213d69b04fc681a9d0bd) - Changed endpoint url to avoid conflicts [`e5dab34`](https://git.odit.services/lfk/backend/commit/e5dab3469c3cef6298fc8deb1192a38f7d18406b) - Adjusted tests for the new testing env [`9292027`](https://git.odit.services/lfk/backend/commit/92920273bec409563d1e38ea27f4d30f893598e8) -- Added testing env check [`3f37212`](https://git.odit.services/lfk/backend/commit/3f372123fd2e1fae467e9cb20985de1eeb9f6a57) - Applied Docker MTU fix 🛠 [`f7af777`](https://git.odit.services/lfk/backend/commit/f7af77710421d7aae5efb048e0622cd067fc20eb) - Updated description [`94001a4`](https://git.odit.services/lfk/backend/commit/94001a48f1b314e91ea5ec982e5585124f9541b6) - Now adding station id to headers of request for scan auth [`8ba7ee1`](https://git.odit.services/lfk/backend/commit/8ba7ee1d481e44e686489e237980b21aaaf6071c) -- 2.47.2