From a9100046dfd1b544bf8fa1222161048f61f3e55a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Fri, 23 Apr 2021 15:33:53 +0200 Subject: [PATCH 1/6] 4.0.0-alpha.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f89b5c3ee3..d8299cf212 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "unleash-server", "description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.", - "version": "4.0.0-alpha.3", + "version": "4.0.0-alpha.4", "keywords": [ "unleash", "feature toggle", From c216181f8e85c08587e3e46c19f578a1b1e91eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Mon, 26 Apr 2021 11:27:52 +0200 Subject: [PATCH 2/6] fix: add types for node-fetch --- package.json | 1 + yarn.lock | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/package.json b/package.json index d8299cf212..0644cdd692 100644 --- a/package.json +++ b/package.json @@ -113,6 +113,7 @@ "@types/bcrypt": "^3.0.0", "@types/express": "^4.17.11", "@types/node": "^14.14.37", + "@types/node-fetch": "^2.5.10", "@types/nodemailer": "^6.4.1", "@types/owasp-password-strength-test": "^1.3.0", "@typescript-eslint/eslint-plugin": "^4.22.0", diff --git a/yarn.lock b/yarn.lock index cf6a387691..e456c292f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -590,6 +590,14 @@ resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/node-fetch@^2.5.10": + version "2.5.10" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.10.tgz#9b4d4a0425562f9fcea70b12cb3fcdd946ca8132" + integrity sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": version "14.0.27" resolved "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz" From 2874ae71b6a455490baaaa4762f6401fac300b2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Mon, 26 Apr 2021 11:28:51 +0200 Subject: [PATCH 3/6] fix: change default admin password --- src/lib/services/user-service.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/lib/services/user-service.ts b/src/lib/services/user-service.ts index 3747ece605..c566f1366d 100644 --- a/src/lib/services/user-service.ts +++ b/src/lib/services/user-service.ts @@ -9,7 +9,6 @@ import { Logger } from '../logger'; import User, { IUser } from '../types/user'; import isEmail from '../util/is-email'; import { AccessService, RoleName } from './access-service'; -import { ADMIN } from '../permissions'; import ResetTokenService from './reset-token-service'; import InvalidTokenError from '../error/invalid-token-error'; import NotFoundError from '../error/notfound-error'; @@ -75,14 +74,7 @@ class UserService { getLogger, authentication, }: Pick, - { - accessService, - resetTokenService, - emailService, - }: Pick< - IServices, - 'accessService' | 'resetTokenService' | 'emailService' - >, + { accessService, resetTokenService, emailService }: IServices, ) { this.logger = getLogger('service/user-service.js'); this.store = stores.userStore; @@ -107,13 +99,14 @@ class UserService { if (!hasAdminUser) { // create default admin user try { + const pwd = 'unleash4all'; this.logger.info( - 'Creating default user "admin" with password "admin"', + `Creating default user "admin" with password "${pwd}"`, ); const user = await this.store.insert({ username: 'admin', }); - const passwordHash = await bcrypt.hash('admin', saltRounds); + const passwordHash = await bcrypt.hash(pwd, saltRounds); await this.store.setPasswordHash(user.id, passwordHash); const rootRoles = await this.accessService.getRootRoles(); From d12dc43b8fbb6fa8eed02f57260699e6bee57503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Mon, 26 Apr 2021 11:29:14 +0200 Subject: [PATCH 4/6] fix: migration should call cb on down --- src/migrations/20210423103647-lowercase-all-emails.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/migrations/20210423103647-lowercase-all-emails.js b/src/migrations/20210423103647-lowercase-all-emails.js index eddc78daa7..bbd9e04065 100644 --- a/src/migrations/20210423103647-lowercase-all-emails.js +++ b/src/migrations/20210423103647-lowercase-all-emails.js @@ -12,4 +12,6 @@ exports.up = function(db, cb) { ); }; -exports.down = function() {}; +exports.down = function(db, cb) { + db.runSql('', cb); +}; From bedb28d55a643d5292458c0be8e6baaf3a10ef9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Mon, 26 Apr 2021 11:51:53 +0200 Subject: [PATCH 5/6] fix: correct test data --- src/test/e2e/services/user-service.e2e.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/e2e/services/user-service.e2e.test.ts b/src/test/e2e/services/user-service.e2e.test.ts index 95ddc78c67..1d40f03706 100644 --- a/src/test/e2e/services/user-service.e2e.test.ts +++ b/src/test/e2e/services/user-service.e2e.test.ts @@ -46,7 +46,7 @@ test.afterEach(async () => { test.serial('should create initial admin user', async t => { await userService.initAdminUser(); - await t.notThrowsAsync(userService.loginUser('admin', 'admin')); + await t.notThrowsAsync(userService.loginUser('admin', 'unleash4all')); await t.throwsAsync(userService.loginUser('admin', 'wrong-password')); }); From 5e5392799177cad18b6c6e49907dd9d033a5acdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Mon, 26 Apr 2021 12:21:18 +0200 Subject: [PATCH 6/6] fix: fix test data --- src/lib/services/user-service.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/services/user-service.test.ts b/src/lib/services/user-service.test.ts index 6e7949d689..886e2cb85e 100644 --- a/src/lib/services/user-service.test.ts +++ b/src/lib/services/user-service.test.ts @@ -57,7 +57,7 @@ test('Should create default user', async t => { await service.initAdminUser(); - const user = await service.loginUser('admin', 'admin'); + const user = await service.loginUser('admin', 'unleash4all'); t.is(user.username, 'admin'); });