Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import {
    Entity,
    PrimaryGeneratedColumn,
    Column,
    BaseEntity,
    OneToMany,
} from "typeorm"
import { Chart } from "./Chart"
import { Dataset } from "./Dataset"
import { ChartRevision } from "./ChartRevision"
import { BCryptHasher } from "../hashers"
 
@Entity("users")
export class User extends BaseEntity {
    @PrimaryGeneratedColumn() id!: number
    @Column({ unique: true }) email!: string
    @Column({ length: 128 }) password!: string
    @Column({ default: "" }) fullName!: string
    @Column({ default: true }) isActive!: boolean
    @Column({ default: false }) isSuperuser!: boolean
    @Column() createdAt!: Date
    @Column() updatedAt!: Date
    @Column() lastLogin!: Date
    @Column() lastSeen!: Date
 
    @OneToMany(() => Chart, (chart) => chart.lastEditedByUser)
    lastEditedCharts!: Chart[]
 
    @OneToMany(() => Chart, (chart) => chart.publishedByUser)
    publishedCharts!: Chart[]
 
    @OneToMany(() => ChartRevision, (rev) => rev.user)
    editedCharts!: ChartRevision[]
 
    @OneToMany(() => Dataset, (dataset) => dataset.createdByUser)
    createdDatasets!: Dataset[]
 
    async setPassword(password: string): Promise<void> {
        const h = new BCryptHasher()
        this.password = await h.encode(password)
    }
}
  |