Skip to content

Commit 3f7235a

Browse files
authored
Merge pull request #1571 from rocket-admin/backend_security_report
remove user creation in selfhosted mode
2 parents 5f0f77c + 25f3dbb commit 3f7235a

33 files changed

+23858
-25133
lines changed
Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,11 @@
1-
import { Injectable, OnModuleInit } from '@nestjs/common';
2-
import { isSaaS } from '../../helpers/app/is-saas.js';
1+
import { Injectable } from '@nestjs/common';
32
import { FoundUserInGroupDs } from './application/data-structures/found-user-in-group.ds.js';
43
import { FoundUserDto } from './dto/found-user.dto.js';
54
import { UserEntity } from './user.entity.js';
65
import { getUserIntercomHash } from './utils/get-user-intercom-hash.js';
7-
import { Encryptor } from '../../helpers/encryption/encryptor.js';
8-
import { CompanyInfoEntity } from '../company-info/company-info.entity.js';
9-
import { RegisterUserDs } from './application/data-structures/register-user-ds.js';
10-
import { UserRoleEnum } from './enums/user-role.enum.js';
11-
import { InjectRepository } from '@nestjs/typeorm';
12-
import { Repository } from 'typeorm';
13-
import { buildRegisteringUser } from './utils/build-registering-user.util.js';
146

157
@Injectable()
16-
export class UserHelperService implements OnModuleInit {
17-
constructor(
18-
@InjectRepository(UserEntity)
19-
private readonly userRepository: Repository<UserEntity>,
20-
@InjectRepository(CompanyInfoEntity)
21-
private readonly companyInfoRepository: Repository<CompanyInfoEntity>,
22-
) {}
23-
8+
export class UserHelperService {
249
public buildFoundUserInGroupDs(user: UserEntity): FoundUserInGroupDs {
2510
return {
2611
id: user.id,
@@ -50,35 +35,4 @@ export class UserHelperService implements OnModuleInit {
5035
show_test_connections: user.showTestConnections,
5136
};
5237
}
53-
54-
public async onModuleInit(): Promise<void> {
55-
if (isSaaS() || process.env.NODE_ENV !== 'test') {
56-
return;
57-
}
58-
const email = (process.env.ADMIN_EMAIL || 'admin@email.local').toLowerCase();
59-
const password =
60-
process.env.ADMIN_PASSWORD ||
61-
(process.env.NODE_ENV === 'test' ? 'test12345' : Encryptor.generateRandomString(10));
62-
63-
const foundTestUser = await this.userRepository.findOneBy({ email: email });
64-
if (foundTestUser) {
65-
return;
66-
}
67-
68-
const registerUserData: RegisterUserDs = {
69-
email: email,
70-
password: password,
71-
isActive: true,
72-
gclidValue: null,
73-
name: 'Admin',
74-
role: UserRoleEnum.ADMIN,
75-
};
76-
const savedUser = await this.userRepository.save(buildRegisteringUser(registerUserData));
77-
const newCompanyInfo = new CompanyInfoEntity();
78-
newCompanyInfo.id = Encryptor.generateUUID();
79-
const savedCompanyInfo = await this.companyInfoRepository.save(newCompanyInfo);
80-
savedUser.company = savedCompanyInfo;
81-
await this.userRepository.save(savedUser);
82-
console.info(`Admin user created with email: "${email}" and password: "${password}"`);
83-
}
8438
}

backend/test/ava-tests/non-saas-tests/non-saas-ai-chat-e2e.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { Cacher } from '../../../src/helpers/cache/cacher.js';
1212
import { DatabaseModule } from '../../../src/shared/database/database.module.js';
1313
import { DatabaseService } from '../../../src/shared/database/database.service.js';
1414
import { MockFactory } from '../../mock.factory.js';
15-
import { registerUserAndReturnUserInfo } from '../../utils/register-user-and-return-user-info.js';
15+
import { registerUserAndReturnUserInfo, createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
1616
import { setSaasEnvVariable } from '../../utils/set-saas-env-variable.js';
1717
import { TestUtils } from '../../utils/test.utils.js';
1818
import { ValidationException } from '../../../src/exceptions/custom-exceptions/validation-exception.js';
@@ -77,6 +77,7 @@ test.before(async () => {
7777
}),
7878
);
7979
await app.init();
80+
await createInitialTestUser(app);
8081
app.getHttpServer().listen(0);
8182
});
8283

backend/test/ava-tests/non-saas-tests/non-saas-app-e2e.test.ts

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,33 @@ import { DatabaseService } from '../../../src/shared/database/database.service.j
88
import { DatabaseModule } from '../../../src/shared/database/database.module.js';
99
import { setSaasEnvVariable } from '../../utils/set-saas-env-variable.js';
1010
import { Cacher } from '../../../src/helpers/cache/cacher.js';
11+
import { createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
1112

1213
let app: INestApplication;
1314

1415
test.before(async () => {
15-
setSaasEnvVariable();
16-
const moduleFixture = await Test.createTestingModule({
17-
imports: [ApplicationModule, DatabaseModule],
18-
providers: [DatabaseService],
19-
}).compile();
20-
app = moduleFixture.createNestApplication();
21-
await app.init();
16+
setSaasEnvVariable();
17+
const moduleFixture = await Test.createTestingModule({
18+
imports: [ApplicationModule, DatabaseModule],
19+
providers: [DatabaseService],
20+
}).compile();
21+
app = moduleFixture.createNestApplication();
22+
await app.init();
23+
await createInitialTestUser(app);
2224
});
2325

2426
test.after(async () => {
25-
try {
26-
await Cacher.clearAllCache();
27-
await app.close();
28-
} catch (e) {
29-
console.error('After tests error ' + e);
30-
}
27+
try {
28+
await Cacher.clearAllCache();
29+
await app.close();
30+
} catch (e) {
31+
console.error('After tests error ' + e);
32+
}
3133
});
3234

3335
test.serial(' > get hello', async (t) => {
34-
const result = await request(app.getHttpServer()).get('/hello');
35-
const responseText = result.text;
36-
t.assert('Hello World!', responseText);
37-
t.pass();
36+
const result = await request(app.getHttpServer()).get('/hello');
37+
const responseText = result.text;
38+
t.assert('Hello World!', responseText);
39+
t.pass();
3840
});

backend/test/ava-tests/non-saas-tests/non-saas-company-info-e2e.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { MockFactory } from '../../mock.factory.js';
2222
import { setSaasEnvVariable } from '../../utils/set-saas-env-variable.js';
2323
import { TestUtils } from '../../utils/test.utils.js';
2424
import { createConnectionsAndInviteNewUserInNewGroupWithGroupPermissions } from '../../utils/user-with-different-permissions-utils.js';
25+
import { createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
2526

2627
const _mockFactory = new MockFactory();
2728
let app: INestApplication;
@@ -47,6 +48,7 @@ test.before(async () => {
4748
}),
4849
);
4950
await app.init();
51+
await createInitialTestUser(app);
5052
app.getHttpServer().listen(0);
5153
});
5254

backend/test/ava-tests/non-saas-tests/non-saas-connection-e2e.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { TestUtils } from '../../utils/test.utils.js';
1515
import {
1616
inviteUserInCompanyAndAcceptInvitation,
1717
registerUserAndReturnUserInfo,
18+
createInitialTestUser,
1819
} from '../../utils/register-user-and-return-user-info.js';
1920
import { setSaasEnvVariable } from '../../utils/set-saas-env-variable.js';
2021
import { ValidationException } from '../../../src/exceptions/custom-exceptions/validation-exception.js';
@@ -49,6 +50,7 @@ test.before(async () => {
4950
}),
5051
);
5152
await app.init();
53+
await createInitialTestUser(app);
5254
app.getHttpServer().listen(0);
5355
});
5456

backend/test/ava-tests/non-saas-tests/non-saas-connection-properties-e2e.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { DatabaseService } from '../../../src/shared/database/database.service.j
1111
import { MockFactory } from '../../mock.factory.js';
1212
import { getTestKnex } from '../../utils/get-test-knex.js';
1313
import { TestUtils } from '../../utils/test.utils.js';
14-
import { registerUserAndReturnUserInfo } from '../../utils/register-user-and-return-user-info.js';
14+
import { registerUserAndReturnUserInfo, createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
1515
import { setSaasEnvVariable } from '../../utils/set-saas-env-variable.js';
1616
import { ValidationException } from '../../../src/exceptions/custom-exceptions/validation-exception.js';
1717
import { ValidationError } from 'class-validator';
@@ -48,6 +48,7 @@ test.before(async () => {
4848
}),
4949
);
5050
await app.init();
51+
await createInitialTestUser(app);
5152
app.getHttpServer().listen(0);
5253
});
5354

backend/test/ava-tests/non-saas-tests/non-saas-custom-field-e2e.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { INestApplication, ValidationPipe } from '@nestjs/common';
99
import { MockFactory } from '../../mock.factory.js';
1010
import { Encryptor } from '../../../src/helpers/encryption/encryptor.js';
1111
import test from 'ava';
12-
import { registerUserAndReturnUserInfo } from '../../utils/register-user-and-return-user-info.js';
12+
import { registerUserAndReturnUserInfo, createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
1313
import { getTestData } from '../../utils/get-test-data.js';
1414
import request from 'supertest';
1515
import { replaceTextInCurlies } from '../../../src/helpers/index.js';
@@ -56,6 +56,7 @@ test.before(async () => {
5656
}),
5757
);
5858
await app.init();
59+
await createInitialTestUser(app);
5960
app.getHttpServer().listen(0);
6061
});
6162

backend/test/ava-tests/non-saas-tests/non-saas-dashboard-e2e.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { DatabaseModule } from '../../../src/shared/database/database.module.js'
1515
import { DatabaseService } from '../../../src/shared/database/database.service.js';
1616
import { MockFactory } from '../../mock.factory.js';
1717
import { getTestData } from '../../utils/get-test-data.js';
18-
import { registerUserAndReturnUserInfo } from '../../utils/register-user-and-return-user-info.js';
18+
import { registerUserAndReturnUserInfo, createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
1919
import { setSaasEnvVariable } from '../../utils/set-saas-env-variable.js';
2020
import { TestUtils } from '../../utils/test.utils.js';
2121
import { DashboardWidgetTypeEnum } from '../../../src/enums/dashboard-widget-type.enum.js';
@@ -46,6 +46,7 @@ test.before(async () => {
4646
}),
4747
);
4848
await app.init();
49+
await createInitialTestUser(app);
4950
app.getHttpServer().listen(0);
5051
});
5152

backend/test/ava-tests/non-saas-tests/non-saas-group-e2e.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { AllExceptionsFilter } from '../../../src/exceptions/all-exceptions.filt
1212
import {
1313
inviteUserInCompanyAndAcceptInvitation,
1414
registerUserAndReturnUserInfo,
15+
createInitialTestUser,
1516
} from '../../utils/register-user-and-return-user-info.js';
1617
import { getTestData } from '../../utils/get-test-data.js';
1718
import request from 'supertest';
@@ -57,6 +58,7 @@ test.before(async () => {
5758
}),
5859
);
5960
await app.init();
61+
await createInitialTestUser(app);
6062
app.getHttpServer().listen(0);
6163
});
6264

backend/test/ava-tests/non-saas-tests/non-saas-permissions-e2e.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { DatabaseModule } from '../../../src/shared/database/database.module.js'
1111
import { DatabaseService } from '../../../src/shared/database/database.service.js';
1212
import cookieParser from 'cookie-parser';
1313
import { AllExceptionsFilter } from '../../../src/exceptions/all-exceptions.filter.js';
14-
import { registerUserAndReturnUserInfo } from '../../utils/register-user-and-return-user-info.js';
14+
import { registerUserAndReturnUserInfo, createInitialTestUser } from '../../utils/register-user-and-return-user-info.js';
1515
import { getTestData } from '../../utils/get-test-data.js';
1616
import request from 'supertest';
1717
import { AccessLevelEnum } from '../../../src/enums/index.js';
@@ -46,6 +46,7 @@ test.before(async () => {
4646
}),
4747
);
4848
await app.init();
49+
await createInitialTestUser(app);
4950
app.getHttpServer().listen(0);
5051
});
5152

0 commit comments

Comments
 (0)