diff options
author | Joseph Ditton <jditton.atomic@gmail.com> | 2021-12-01 20:18:26 -0700 |
---|---|---|
committer | Joseph Ditton <jditton.atomic@gmail.com> | 2021-12-01 20:18:26 -0700 |
commit | 84b45cd6b11347e66437cd92dc20372d0abd6eb9 (patch) | |
tree | 6e42b5861278485c67159dc57c225983e3fd69f8 /server/providers/services | |
parent | d803aaaf1be441f55fe674c3b0c6793e77a9203f (diff) | |
download | locchat-84b45cd6b11347e66437cd92dc20372d0abd6eb9.tar.gz locchat-84b45cd6b11347e66437cd92dc20372d0abd6eb9.zip |
adds roles
Diffstat (limited to 'server/providers/services')
-rw-r--r-- | server/providers/services/roles.service.ts | 25 | ||||
-rw-r--r-- | server/providers/services/users.service.ts | 6 |
2 files changed, 30 insertions, 1 deletions
diff --git a/server/providers/services/roles.service.ts b/server/providers/services/roles.service.ts new file mode 100644 index 0000000..7cd17ef --- /dev/null +++ b/server/providers/services/roles.service.ts @@ -0,0 +1,25 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { In, Repository } from 'typeorm'; +import * as bcrypt from 'bcrypt'; +import { Role, RoleKey } from 'server/entities/role.entity'; + +@Injectable() +export class RolesService { + constructor( + @InjectRepository(Role) + private rolesRepository: Repository<Role>, + ) {} + + findByKey(...keys: RoleKey[]) { + return this.rolesRepository.find({ where: { key: In(keys) } }); + } + + findByIds(ids: number[]) { + return this.rolesRepository.findByIds(ids); + } + + find(id: number, relations: string[] = []) { + return this.rolesRepository.findOne(id, { relations }); + } +} diff --git a/server/providers/services/users.service.ts b/server/providers/services/users.service.ts index 47a0360..c3ee086 100644 --- a/server/providers/services/users.service.ts +++ b/server/providers/services/users.service.ts @@ -11,6 +11,10 @@ export class UsersService { private usersRespository: Repository<User>, ) {} + findAll(relations: string[] = []) { + return this.usersRespository.find({ relations }); + } + findBy(options: Record<string, any>, relations: string[] = []) { return this.usersRespository.findOne(options, { relations }); } @@ -24,7 +28,7 @@ export class UsersService { } async verify(email: string, password: string) { - const user = await this.usersRespository.findOne({ email }, { relations: ['refreshTokens'] }); + const user = await this.usersRespository.findOne({ email }, { relations: ['refreshTokens', 'userRoles'] }); if (!user) return { verified: false, user: null }; const verified: boolean = await bcrypt.compare(password, user.passwordHash); return { verified, user: verified ? user : null }; |