diff --git a/src/lib/services/user-service.ts b/src/lib/services/user-service.ts index 0c4428f288..382d586213 100644 --- a/src/lib/services/user-service.ts +++ b/src/lib/services/user-service.ts @@ -114,9 +114,9 @@ class UserService { } async initAdminUser(): Promise { - const hasAdminUser = await this.store.hasUser({ username: 'admin' }); + const userCount = await this.store.count(); - if (!hasAdminUser) { + if (userCount === 0) { // create default admin user try { const pwd = 'unleash4all'; diff --git a/src/test/e2e/services/user-service.e2e.test.ts b/src/test/e2e/services/user-service.e2e.test.ts index 026166281c..3dd1dcda42 100644 --- a/src/test/e2e/services/user-service.e2e.test.ts +++ b/src/test/e2e/services/user-service.e2e.test.ts @@ -58,6 +58,21 @@ test('should create initial admin user', async () => { ).toBeTruthy(); }); +test('should not init default user if we already have users', async () => { + await userService.createUser({ + username: 'test', + password: 'A very strange P4ssw0rd_', + rootRole: adminRole.id, + }); + await userService.initAdminUser(); + const users = await userService.getAll(); + expect(users).toHaveLength(1); + expect(users[0].username).toBe('test'); + await expect(async () => + userService.loginUser('admin', 'unleash4all'), + ).rejects.toThrow(Error); +}); + test('should not be allowed to create existing user', async () => { await userStore.insert({ username: 'test', name: 'Hans Mola' }); await expect(async () =>