diff options
author | Joseph Ditton <jditton.atomic@gmail.com> | 2021-11-30 15:40:07 -0700 |
---|---|---|
committer | Joseph Ditton <jditton.atomic@gmail.com> | 2021-11-30 15:40:07 -0700 |
commit | 694f2318bd2eaf526d8714c56774022a15beae04 (patch) | |
tree | edaed14ca7d7a52e8a7a8bcdb7483d1a34bd334a /server/entities | |
parent | 8d0b32f8dfe45291426e58f6bf20cffac8dab6e7 (diff) | |
download | locchat-694f2318bd2eaf526d8714c56774022a15beae04.tar.gz locchat-694f2318bd2eaf526d8714c56774022a15beae04.zip |
adds setup for roles
Diffstat (limited to 'server/entities')
-rw-r--r-- | server/entities/role.entity.ts | 21 | ||||
-rw-r--r-- | server/entities/user.entity.ts | 4 | ||||
-rw-r--r-- | server/entities/user_role.entity.ts | 15 |
3 files changed, 40 insertions, 0 deletions
diff --git a/server/entities/role.entity.ts b/server/entities/role.entity.ts new file mode 100644 index 0000000..35b4ac3 --- /dev/null +++ b/server/entities/role.entity.ts @@ -0,0 +1,21 @@ +import { Entity, PrimaryGeneratedColumn, OneToMany, Column } from 'typeorm'; +import { UserRole } from './user_role.entity'; + +@Entity() +export class Role { + static ADMIN = 'admin'; + static USER = 'user'; + + // make sure add additional roles to this arraylist as it + // will be used during seeds to initiallize all roles. + static ROLES = [Role.ADMIN, Role.USER]; + + @PrimaryGeneratedColumn() + id: number; + + @Column() + key: string; + + @OneToMany(() => UserRole, (userRole) => userRole.role) + userRoles: UserRole[]; +} diff --git a/server/entities/user.entity.ts b/server/entities/user.entity.ts index 6ddbeeb..faf054f 100644 --- a/server/entities/user.entity.ts +++ b/server/entities/user.entity.ts @@ -1,5 +1,6 @@ import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm'; import { RefreshToken } from './refresh_token.entity'; +import { UserRole } from './user_role.entity'; @Entity() export class User { @@ -17,4 +18,7 @@ export class User { @OneToMany(() => RefreshToken, (token) => token.user) refreshTokens: RefreshToken[]; + + @OneToMany(() => UserRole, (userRole) => userRole.user) + userRoles: UserRole[]; } diff --git a/server/entities/user_role.entity.ts b/server/entities/user_role.entity.ts new file mode 100644 index 0000000..0a6c5c6 --- /dev/null +++ b/server/entities/user_role.entity.ts @@ -0,0 +1,15 @@ +import { Entity, PrimaryGeneratedColumn, ManyToOne } from 'typeorm'; +import { Role } from './role.entity'; +import { User } from './user.entity'; + +@Entity() +export class UserRole { + @PrimaryGeneratedColumn() + id: number; + + @ManyToOne(() => Role, (role) => role.userRoles) + role: Role; + + @ManyToOne(() => User, (user) => user.userRoles) + user: User; +} |