From f14c0c0e221da85e7075fc577329edad708fc5d7 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 22 Feb 2023 08:24:32 +0800 Subject: [PATCH 1/3] Add Clubs to the admin portal --- pkg/admin/src/db.ts | 33 +++++++++++++++++++++++++++++++++ pkg/admin/src/index.ts | 2 ++ 2 files changed, 35 insertions(+) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index 95ef60f49..a694e165a 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -8,6 +8,7 @@ import { JoinColumn, ManyToOne, OneToMany, + OneToOne, } from 'typeorm' import AdminJs from 'adminjs' import { Database, Resource } from '@adminjs/typeorm' @@ -46,6 +47,7 @@ export const registerDatabase = async (secrets: any): Promise => { UserArticle, ReceivedEmail, ContentDisplayReport, + Group, ], }) @@ -186,3 +188,34 @@ export class ReceivedEmail extends BaseEntity { @Column({ type: 'timestamp', name: 'updated_at' }) updatedAt!: Date } + +@Entity() +export class Group extends BaseEntity { + @PrimaryGeneratedColumn('uuid') + id!: string + + @Column('text') + name!: string + + @OneToOne(() => User) + @JoinColumn() + createdBy!: User + + @Column({ type: 'timestamp', name: 'created_at' }) + createdAt!: Date + + @Column({ type: 'timestamp', name: 'updated_at' }) + updatedAt!: Date + + @Column('text', { nullable: true }) + description?: string | null + + @Column('text', { nullable: true }) + topics?: string | null + + @Column('boolean', { default: false }) + onlyAdminCanPost!: boolean + + @Column('boolean', { default: false }) + onlyAdminCanSeeMembers!: boolean +} diff --git a/pkg/admin/src/index.ts b/pkg/admin/src/index.ts index 56faeaaf3..c1b128727 100644 --- a/pkg/admin/src/index.ts +++ b/pkg/admin/src/index.ts @@ -8,6 +8,7 @@ import { UserArticle, UserProfile, ReceivedEmail, + Group, ContentDisplayReport, } from './db' import { compare, hashSync } from 'bcryptjs' @@ -35,6 +36,7 @@ const ADMIN_USER_EMAIL = { resource: UserProfile, options: { parent: { name: 'Users' } } }, { resource: UserArticle, options: { parent: { name: 'Users' } } }, { resource: ReceivedEmail, options: { parent: { name: 'Users' } } }, + { resource: Group, options: { parent: { name: 'Users' } } }, { resource: ContentDisplayReport, }, From 8f304e36be8128a8488b2b59136cfceb58de3a1a Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 22 Feb 2023 08:57:00 +0800 Subject: [PATCH 2/3] Add column names --- pkg/admin/src/db.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index a694e165a..de03cadc5 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -213,9 +213,9 @@ export class Group extends BaseEntity { @Column('text', { nullable: true }) topics?: string | null - @Column('boolean', { default: false }) + @Column('boolean', { default: false, name: 'only_admin_can_post' }) onlyAdminCanPost!: boolean - @Column('boolean', { default: false }) + @Column('boolean', { default: false, name: 'only_admin_can_see_members' }) onlyAdminCanSeeMembers!: boolean } From f8a50d320b232fec72d436c2fcfe423b0a164399 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 22 Feb 2023 08:58:30 +0800 Subject: [PATCH 3/3] Column naming for join column --- pkg/admin/src/db.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index de03cadc5..467178c34 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -198,7 +198,7 @@ export class Group extends BaseEntity { name!: string @OneToOne(() => User) - @JoinColumn() + @JoinColumn({ name: 'created_at' }) createdBy!: User @Column({ type: 'timestamp', name: 'created_at' })