From 87bd9d5b60d9c54352906d2ed13dabb81f18546e Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Sat, 25 Nov 2023 12:59:03 +0800 Subject: [PATCH] Add group membership, more debug --- packages/rss-handler/src/index.ts | 2 +- pkg/admin/src/db.ts | 26 +++++++++++++++++++++++++- pkg/admin/src/index.ts | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/packages/rss-handler/src/index.ts b/packages/rss-handler/src/index.ts index 75a621ee5..a3abb1416 100644 --- a/packages/rss-handler/src/index.ts +++ b/packages/rss-handler/src/index.ts @@ -360,7 +360,7 @@ const processSubscription = async ( // use published or updated if isoDate is not available for atom feeds item.isoDate = item.isoDate || item.published || item.updated || item.created - console.log('Processing feed item', item.links, item.isoDate) + console.log('Processing feed item', item.links, item.isoDate, feed.feedUrl) if (!item.links || item.links.length === 0) { console.log('Invalid feed item', item) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index f01302f0d..f153fd6c4 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -53,6 +53,7 @@ export const registerDatabase = async (secrets: any): Promise => { LibraryItem, UploadFile, Recommendation, + GroupMembership, ], }) @@ -215,7 +216,7 @@ export class Group extends BaseEntity { name!: string @OneToOne(() => User) - @JoinColumn({ name: 'created_by' }) + @JoinColumn({ name: 'created_by_id' }) createdBy!: User @Column({ type: 'timestamp', name: 'created_at' }) @@ -407,3 +408,26 @@ export class Recommendation extends BaseEntity { @Column({ type: 'timestamp', name: 'created_at' }) createdAt!: Date } + +@Entity({ name: 'group_membership' }) +export class GroupMembership extends BaseEntity { + @PrimaryGeneratedColumn('uuid') + id!: string + + @OneToOne(() => User) + @JoinColumn() + user!: User + + @JoinColumn({ name: 'group_id' }) + @ManyToOne(() => User, (user) => user.articles, { eager: true }) + group!: Group + + @Column({ type: 'timestamp', name: 'created_at' }) + createdAt!: Date + + @Column({ type: 'timestamp', name: 'updated_at' }) + updatedAt!: Date + + @Column('boolean', { default: false }) + isAdmin!: boolean +} diff --git a/pkg/admin/src/index.ts b/pkg/admin/src/index.ts index 5ce5967df..894e4b733 100644 --- a/pkg/admin/src/index.ts +++ b/pkg/admin/src/index.ts @@ -14,6 +14,7 @@ import { Integration, LibraryItem, Recommendation, + GroupMembership, } from './db' import { compare, hashSync } from 'bcryptjs' const readYamlFile = require('read-yaml-file') @@ -48,6 +49,7 @@ const ADMIN_USER_EMAIL = resource: ContentDisplayReport, }, { resource: Recommendation, options: { parent: { name: 'Users' } } }, + { resource: GroupMembership, options: { parent: { name: 'Users' } } }, ], })