2023-02-06 10:24:58 -06:00
|
|
|
import {
|
|
|
|
|
Column,
|
|
|
|
|
CreateDateColumn,
|
|
|
|
|
DeleteDateColumn,
|
|
|
|
|
Entity,
|
|
|
|
|
OneToMany,
|
|
|
|
|
PrimaryGeneratedColumn,
|
|
|
|
|
UpdateDateColumn,
|
|
|
|
|
} from 'typeorm';
|
2023-02-26 20:57:34 +01:00
|
|
|
import { AssetEntity } from './asset.entity';
|
2022-12-05 11:56:44 -06:00
|
|
|
import { TagEntity } from './tag.entity';
|
2022-02-03 10:06:44 -06:00
|
|
|
|
|
|
|
|
@Entity('users')
|
|
|
|
|
export class UserEntity {
|
|
|
|
|
@PrimaryGeneratedColumn('uuid')
|
2022-06-25 19:53:06 +02:00
|
|
|
id!: string;
|
2022-02-03 10:06:44 -06:00
|
|
|
|
2022-07-04 20:20:43 +01:00
|
|
|
@Column({ default: '' })
|
2023-11-11 20:03:32 -05:00
|
|
|
name!: string;
|
2022-05-21 02:23:55 -05:00
|
|
|
|
2022-07-04 20:20:43 +01:00
|
|
|
@Column({ default: false })
|
2022-06-25 19:53:06 +02:00
|
|
|
isAdmin!: boolean;
|
2022-05-21 02:23:55 -05:00
|
|
|
|
2022-12-09 22:16:25 -05:00
|
|
|
@Column({ unique: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
email!: string;
|
2022-02-03 10:06:44 -06:00
|
|
|
|
2023-05-21 23:18:10 -04:00
|
|
|
@Column({ type: 'varchar', unique: true, default: null })
|
|
|
|
|
storageLabel!: string | null;
|
|
|
|
|
|
feat(server): support for read-only assets and importing existing items in the filesystem (#2715)
* Added read-only flag for assets, endpoint to trigger file import vs upload
* updated fixtures with new property
* if upload is 'read-only', ensure there is no existing asset at the designated originalPath
* added test for file import as well as detecting existing image at read-only destination location
* Added storage service test for a case where it should not move read-only assets
* upload doesn't need the read-only flag available, just importing
* default isReadOnly on import endpoint to true
* formatting fixes
* create-asset dto needs isReadOnly, so set it to false by default on create, updated api generation
* updated code to reflect changes in MR
* fixed read stream promise return type
* new index for originalPath, check for existing path on import, reglardless of user, to prevent duplicates
* refactor: import asset
* chore: open api
* chore: tests
* Added externalPath support for individual users, updated UI to allow this to be set by admin
* added missing var for externalPath in ui
* chore: open api
* fix: compilation issues
* fix: server test
* built api, fixed user-response dto to include externalPath
* reverted accidental commit
* bad commit of duplicate externalPath in user response dto
* fixed tests to include externalPath on expected result
* fix: unit tests
* centralized supported filetypes, perform file type checking of asset and sidecar during file import process
* centralized supported filetype check method to keep regex DRY
* fixed typo
* combined migrations into one
* update api
* Removed externalPath from shared-link code, added column to admin user page whether external paths / import is enabled or not
* update mimetype
* Fixed detect correct mimetype
* revert asset-upload config
* reverted domain.constant
* refactor
* fix mime-type issue
* fix format
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-06-21 22:33:20 -04:00
|
|
|
@Column({ type: 'varchar', default: null })
|
|
|
|
|
externalPath!: string | null;
|
|
|
|
|
|
2022-11-14 21:24:25 -05:00
|
|
|
@Column({ default: '', select: false })
|
2022-06-25 19:53:06 +02:00
|
|
|
password?: string;
|
2022-02-03 10:06:44 -06:00
|
|
|
|
2022-12-26 10:35:52 -05:00
|
|
|
@Column({ default: '' })
|
2022-12-03 22:59:24 -05:00
|
|
|
oauthId!: string;
|
|
|
|
|
|
2022-07-04 20:20:43 +01:00
|
|
|
@Column({ default: '' })
|
2022-06-25 19:53:06 +02:00
|
|
|
profileImagePath!: string;
|
2022-05-21 02:23:55 -05:00
|
|
|
|
2022-07-04 20:20:43 +01:00
|
|
|
@Column({ default: true })
|
2022-06-27 15:13:07 -05:00
|
|
|
shouldChangePassword!: boolean;
|
2022-05-21 02:23:55 -05:00
|
|
|
|
2023-05-30 15:15:56 +02:00
|
|
|
@CreateDateColumn({ type: 'timestamptz' })
|
|
|
|
|
createdAt!: Date;
|
2022-11-07 16:53:47 -05:00
|
|
|
|
2023-05-30 15:15:56 +02:00
|
|
|
@DeleteDateColumn({ type: 'timestamptz' })
|
|
|
|
|
deletedAt!: Date | null;
|
2022-12-05 11:56:44 -06:00
|
|
|
|
2023-02-06 10:24:58 -06:00
|
|
|
@UpdateDateColumn({ type: 'timestamptz' })
|
2023-05-30 15:15:56 +02:00
|
|
|
updatedAt!: Date;
|
2023-02-06 10:24:58 -06:00
|
|
|
|
2023-08-09 22:01:16 -04:00
|
|
|
@Column({ default: true })
|
|
|
|
|
memoriesEnabled!: boolean;
|
|
|
|
|
|
2022-12-05 11:56:44 -06:00
|
|
|
@OneToMany(() => TagEntity, (tag) => tag.user)
|
|
|
|
|
tags!: TagEntity[];
|
2023-02-26 20:57:34 +01:00
|
|
|
|
|
|
|
|
@OneToMany(() => AssetEntity, (asset) => asset.owner)
|
|
|
|
|
assets!: AssetEntity[];
|
2022-02-03 10:06:44 -06:00
|
|
|
}
|