diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts index 4af4688..8aaef36 100644 --- a/src/auth/auth.module.ts +++ b/src/auth/auth.module.ts @@ -8,6 +8,7 @@ import { UserRepository } from '@app/common/modules/user/repositories'; import { UserSessionRepository } from '@app/common/modules/session/repositories/session.repository'; import { UserOtpRepository } from '@app/common/modules/user/repositories'; import { RoleTypeRepository } from '@app/common/modules/role-type/repositories'; +import { RoleService } from 'src/role/services'; @Module({ imports: [ConfigModule, UserRepositoryModule, CommonModule], @@ -18,6 +19,7 @@ import { RoleTypeRepository } from '@app/common/modules/role-type/repositories'; UserSessionRepository, UserOtpRepository, RoleTypeRepository, + RoleService, ], exports: [UserAuthService], }) diff --git a/src/auth/services/user-auth.service.ts b/src/auth/services/user-auth.service.ts index b9b3ed3..89eda76 100644 --- a/src/auth/services/user-auth.service.ts +++ b/src/auth/services/user-auth.service.ts @@ -18,6 +18,8 @@ import * as argon2 from 'argon2'; import { differenceInSeconds } from '@app/common/helper/differenceInSeconds'; import { LessThan, MoreThan } from 'typeorm'; import { ConfigService } from '@nestjs/config'; +import { RoleService } from 'src/role/services'; +import { RoleType } from '@app/common/constants/role.type.enum'; @Injectable() export class UserAuthService { @@ -28,6 +30,7 @@ export class UserAuthService { private readonly helperHashService: HelperHashService, private readonly authService: AuthService, private readonly emailService: EmailService, + private readonly roleService: RoleService, private readonly configService: ConfigService, ) {} @@ -44,9 +47,13 @@ export class UserAuthService { try { const { regionUuid, ...rest } = userSignUpDto; + const spaceMemberRole = await this.roleService.findRoleByType( + RoleType.SPACE_MEMBER, + ); const user = await this.userRepository.save({ ...rest, password: hashedPassword, + roleType: { uuid: spaceMemberRole.uuid }, region: regionUuid ? { uuid: regionUuid, diff --git a/src/role/services/role.service.ts b/src/role/services/role.service.ts index 5f75571..307f8a5 100644 --- a/src/role/services/role.service.ts +++ b/src/role/services/role.service.ts @@ -13,4 +13,12 @@ export class RoleService { ); return roles; } + async findRoleByType(roleType: RoleType) { + const role = await this.roleTypeRepository.findOne({ + where: { + type: roleType, + }, + }); + return role; + } }