Add rules and email addresses to admin
This commit is contained in:
@ -44,7 +44,6 @@ export const registerDatabase = async (secrets: any): Promise<Connection> => {
|
||||
AdminUser,
|
||||
User,
|
||||
UserProfile,
|
||||
UserArticle,
|
||||
ReceivedEmail,
|
||||
ContentDisplayReport,
|
||||
Group,
|
||||
@ -55,6 +54,8 @@ export const registerDatabase = async (secrets: any): Promise<Connection> => {
|
||||
Recommendation,
|
||||
GroupMembership,
|
||||
Features,
|
||||
EmailAddress,
|
||||
Rule,
|
||||
],
|
||||
})
|
||||
|
||||
@ -113,9 +114,6 @@ export class User extends BaseEntity {
|
||||
@Column({ type: 'enum', enum: StatusType })
|
||||
status!: StatusType
|
||||
|
||||
@OneToMany(() => UserArticle, (ua) => ua.user)
|
||||
articles!: UserArticle[]
|
||||
|
||||
@Column({ type: 'text' })
|
||||
source_user_id!: string
|
||||
|
||||
@ -132,42 +130,17 @@ export class UserProfile extends BaseEntity {
|
||||
public username!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
}
|
||||
|
||||
@Entity({ name: 'user_articles' })
|
||||
export class UserArticle extends BaseEntity {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column({ type: 'text', name: 'article_id' })
|
||||
articleId!: string
|
||||
|
||||
@Column({ type: 'text' })
|
||||
slug!: string
|
||||
|
||||
@Column({ type: 'timestamp', name: 'created_at' })
|
||||
createdAt!: Date
|
||||
|
||||
@Column({ type: 'timestamp', name: 'updated_at' })
|
||||
updatedAt!: Date
|
||||
|
||||
@Column({ type: 'timestamp', name: 'saved_at' })
|
||||
savedAt!: Date
|
||||
}
|
||||
|
||||
@Entity({ name: 'content_display_report' })
|
||||
export class ContentDisplayReport extends BaseEntity {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column({ type: 'text', name: 'original_url' })
|
||||
@ -189,7 +162,7 @@ export class ReceivedEmail extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column('text')
|
||||
@ -254,7 +227,7 @@ export class Integration extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column('varchar', { length: 40 })
|
||||
@ -293,7 +266,7 @@ export class Subscription extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column('text')
|
||||
@ -335,7 +308,7 @@ export class LibraryItem extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column({ type: 'enum', enum: LibraryItemState })
|
||||
@ -382,7 +355,7 @@ export class UploadFile extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column('text')
|
||||
@ -410,15 +383,15 @@ export class Recommendation extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'recommender_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
recommender!: User
|
||||
|
||||
@JoinColumn({ name: 'library_item_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
libraryItem!: LibraryItem
|
||||
|
||||
@JoinColumn({ name: 'group_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
group!: Group
|
||||
|
||||
@Column('text', { nullable: true })
|
||||
@ -434,7 +407,7 @@ export class GroupMembership extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@JoinColumn({ name: 'group_id' })
|
||||
@ -456,7 +429,7 @@ export class Features extends BaseEntity {
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User, (user) => user.articles, { eager: true })
|
||||
@ManyToOne(() => User, { eager: true })
|
||||
user!: User
|
||||
|
||||
@Column('text')
|
||||
@ -474,3 +447,93 @@ export class Features extends BaseEntity {
|
||||
@Column({ type: 'timestamp', name: 'updated_at' })
|
||||
updatedAt!: Date
|
||||
}
|
||||
|
||||
@Entity({ name: 'newsletter_emails' })
|
||||
export class EmailAddress extends BaseEntity {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User)
|
||||
user!: User
|
||||
|
||||
@Column('varchar')
|
||||
address!: string
|
||||
|
||||
@Column('text')
|
||||
folder?: string | null
|
||||
|
||||
@Column('text')
|
||||
name?: string | null
|
||||
|
||||
@Column('text')
|
||||
description?: string | null
|
||||
|
||||
@Column({ type: 'timestamp', name: 'created_at' })
|
||||
createdAt!: Date
|
||||
|
||||
@Column({ type: 'timestamp', name: 'updated_at' })
|
||||
updatedAt!: Date
|
||||
}
|
||||
|
||||
@Entity({ name: 'rules' })
|
||||
export class Rule extends BaseEntity {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string
|
||||
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
@ManyToOne(() => User)
|
||||
user!: User
|
||||
|
||||
@Column('varchar')
|
||||
name!: string
|
||||
|
||||
@Column('text')
|
||||
filter!: string
|
||||
|
||||
@Column({ type: 'timestamp', name: 'created_at' })
|
||||
createdAt!: Date
|
||||
|
||||
@Column({ type: 'timestamp', name: 'updated_at' })
|
||||
updatedAt!: Date
|
||||
|
||||
@Column({ type: 'timestamp', name: 'failed_at' })
|
||||
failedAt?: Date
|
||||
}
|
||||
|
||||
// @Entity({ name: 'rules' })
|
||||
// export class Rule {
|
||||
// @PrimaryGeneratedColumn('uuid')
|
||||
// id!: string
|
||||
|
||||
// // @ManyToOne(() => User, { onDelete: 'CASCADE' })
|
||||
// // @JoinColumn({ name: 'user_id' })
|
||||
// // user!: User
|
||||
|
||||
// @Column('text')
|
||||
// name!: string
|
||||
|
||||
// // @Column('text')
|
||||
// // filter!: string
|
||||
|
||||
// // @Column('simple-json')
|
||||
// // actions!: RuleAction[]
|
||||
|
||||
// @Column('text', { nullable: true })
|
||||
// description?: string | null
|
||||
|
||||
// // @Column('text', { array: true })
|
||||
// // eventTypes!: RuleEventType[]
|
||||
|
||||
// // @Column('boolean', { default: true })
|
||||
// // enabled!: boolean
|
||||
|
||||
// // @Column({ type: 'timestamp', name: 'created_at' })
|
||||
// // createdAt!: Date
|
||||
|
||||
// // @Column({ type: 'timestamp', name: 'updated_at' })
|
||||
// // updatedAt!: Date
|
||||
|
||||
// // @Column({ type: 'timestamp', name: 'failed_at' })
|
||||
// // failedAt?: Date
|
||||
// }
|
||||
|
||||
@ -5,7 +5,6 @@ import {
|
||||
registerDatabase,
|
||||
AdminUser,
|
||||
User,
|
||||
UserArticle,
|
||||
UserProfile,
|
||||
ReceivedEmail,
|
||||
Group,
|
||||
@ -16,6 +15,8 @@ import {
|
||||
Recommendation,
|
||||
GroupMembership,
|
||||
Features,
|
||||
EmailAddress,
|
||||
Rule,
|
||||
} from './db'
|
||||
import { compare, hashSync } from 'bcryptjs'
|
||||
const readYamlFile = require('read-yaml-file')
|
||||
@ -33,6 +34,9 @@ const ADMIN_USER_EMAIL =
|
||||
databases: [db],
|
||||
rootPath: '/admin',
|
||||
resources: [
|
||||
{
|
||||
resource: ContentDisplayReport,
|
||||
},
|
||||
{
|
||||
resource: User,
|
||||
options: {
|
||||
@ -40,18 +44,16 @@ 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: Subscription, options: { parent: { name: 'Users' } } },
|
||||
{ resource: Integration, options: { parent: { name: 'Users' } } },
|
||||
{ resource: LibraryItem, options: { parent: { name: 'Users' } } },
|
||||
{
|
||||
resource: ContentDisplayReport,
|
||||
},
|
||||
{ resource: Recommendation, options: { parent: { name: 'Users' } } },
|
||||
{ resource: GroupMembership, options: { parent: { name: 'Users' } } },
|
||||
{ resource: Features, options: { parent: { name: 'Users' } } },
|
||||
{ resource: EmailAddress, options: { parent: { name: 'Users' } } },
|
||||
{ resource: Rule, options: { parent: { name: 'Users' } } },
|
||||
],
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user