summaryrefslogtreecommitdiff
path: root/server/entities
diff options
context:
space:
mode:
authorJoseph Ditton <jditton.atomic@gmail.com>2021-11-30 15:40:07 -0700
committerJoseph Ditton <jditton.atomic@gmail.com>2021-11-30 15:40:07 -0700
commit694f2318bd2eaf526d8714c56774022a15beae04 (patch)
treeedaed14ca7d7a52e8a7a8bcdb7483d1a34bd334a /server/entities
parent8d0b32f8dfe45291426e58f6bf20cffac8dab6e7 (diff)
downloadlocchat-694f2318bd2eaf526d8714c56774022a15beae04.tar.gz
locchat-694f2318bd2eaf526d8714c56774022a15beae04.zip
adds setup for roles
Diffstat (limited to 'server/entities')
-rw-r--r--server/entities/role.entity.ts21
-rw-r--r--server/entities/user.entity.ts4
-rw-r--r--server/entities/user_role.entity.ts15
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;
+}