Skip to content

Commit 00be02b

Browse files
committed
Refactor SAML user registration to include company validation and remove unused imports
1 parent 3ff70a1 commit 00be02b

1 file changed

Lines changed: 13 additions & 30 deletions

File tree

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
import { Inject, Injectable } from '@nestjs/common';
1+
import { Inject, Injectable, NotFoundException } from '@nestjs/common';
22
import AbstractUseCase from '../../../common/abstract-use.case.js';
33
import { IGlobalDatabaseContext } from '../../../common/application/global-database-context.interface.js';
44
import { BaseType } from '../../../common/data-injection.tokens.js';
5-
import { ConnectionEntity } from '../../../entities/connection/connection.entity.js';
6-
import { GroupEntity } from '../../../entities/group/group.entity.js';
7-
import { PermissionEntity } from '../../../entities/permission/permission.entity.js';
85
import { RegisterUserDs } from '../../../entities/user/application/data-structures/register-user-ds.js';
96
import { ExternalRegistrationProviderEnum } from '../../../entities/user/enums/external-registration-provider.enum.js';
7+
import { UserRoleEnum } from '../../../entities/user/enums/user-role.enum.js';
108
import { UserEntity } from '../../../entities/user/user.entity.js';
11-
import { buildConnectionEntitiesFromTestDtos } from '../../../entities/user/utils/build-connection-entities-from-test-dtos.js';
12-
import { buildDefaultAdminGroups } from '../../../entities/user/utils/build-default-admin-groups.js';
13-
import { buildDefaultAdminPermissions } from '../../../entities/user/utils/build-default-admin-permissions.js';
14-
import { Constants } from '../../../helpers/constants/constants.js';
9+
import { Messages } from '../../../exceptions/text/messages.js';
1510
import { SaasSAMLUserRegisterDS } from '../data-structures/saas-saml-user-register.ds.js';
1611

1712
@Injectable()
@@ -24,7 +19,7 @@ export class SaaSRegisterUserWIthSamlUseCase extends AbstractUseCase<SaasSAMLUse
2419
}
2520

2621
public async implementation(inputData: SaasSAMLUserRegisterDS): Promise<UserEntity> {
27-
const { email, name, samlNameId } = inputData;
22+
const { email, name, samlNameId, companyId } = inputData;
2823
const foundUser = await this._dbContext.userRepository.findOneUserByEmail(
2924
email,
3025
ExternalRegistrationProviderEnum.SAML,
@@ -47,27 +42,15 @@ export class SaaSRegisterUserWIthSamlUseCase extends AbstractUseCase<SaasSAMLUse
4742
ExternalRegistrationProviderEnum.SAML,
4843
);
4944

50-
const testConnections = Constants.getTestConnectionsArr();
51-
const testConnectionsEntities = buildConnectionEntitiesFromTestDtos(testConnections);
52-
const createdTestConnections = await Promise.all(
53-
testConnectionsEntities.map(async (connection): Promise<ConnectionEntity> => {
54-
connection.author = savedUser;
55-
return await this._dbContext.connectionRepository.saveNewConnection(connection);
56-
}),
57-
);
58-
const testGroupsEntities = buildDefaultAdminGroups(savedUser, createdTestConnections);
59-
const createdTestGroups = await Promise.all(
60-
testGroupsEntities.map(async (group: GroupEntity) => {
61-
return await this._dbContext.groupRepository.saveNewOrUpdatedGroup(group);
62-
}),
63-
);
64-
const testPermissionsEntities = buildDefaultAdminPermissions(createdTestGroups);
65-
await Promise.all(
66-
testPermissionsEntities.map(async (permission: PermissionEntity) => {
67-
await this._dbContext.permissionRepository.saveNewOrUpdatedPermission(permission);
68-
}),
69-
);
45+
const foundCompanyInfo = await this._dbContext.companyInfoRepository.findOne({ where: { id: companyId } });
46+
if (!foundCompanyInfo) {
47+
throw new NotFoundException(Messages.COMPANY_NOT_FOUND);
48+
}
49+
50+
savedUser.company = foundCompanyInfo;
51+
savedUser.samlNameId = samlNameId;
52+
savedUser.role = UserRoleEnum.USER;
7053

71-
return savedUser;
54+
return await this._dbContext.userRepository.saveUserEntity(savedUser);
7255
}
7356
}

0 commit comments

Comments
 (0)