summaryrefslogtreecommitdiff
path: root/packages/backend/src/models
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-06-05 08:00:32 +0000
committerHazelnoot <acomputerdog@gmail.com>2025-06-05 08:00:32 +0000
commitf88253b95f5ed16f23a23796f76ba4e8ea5f99b3 (patch)
treebec1ce21bd1b2de423b110a74f4c0dd4199583d4 /packages/backend/src/models
parentmerge: Add option to keep CWs with "RE:" prefix (!1093) (diff)
parentsupport link attributions in SkUrlPreviewGroup (diff)
downloadsharkey-f88253b95f5ed16f23a23796f76ba4e8ea5f99b3.tar.gz
sharkey-f88253b95f5ed16f23a23796f76ba4e8ea5f99b3.tar.bz2
sharkey-f88253b95f5ed16f23a23796f76ba4e8ea5f99b3.zip
merge: Report admin UX improvements (!1060)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1060 Approved-by: Marie <github@yuugi.dev> Approved-by: dakkar <dakkar@thenautilus.net>
Diffstat (limited to 'packages/backend/src/models')
-rw-r--r--packages/backend/src/models/AbuseUserReport.ts21
-rw-r--r--packages/backend/src/models/User.ts4
-rw-r--r--packages/backend/src/models/UserProfile.ts2
3 files changed, 26 insertions, 1 deletions
diff --git a/packages/backend/src/models/AbuseUserReport.ts b/packages/backend/src/models/AbuseUserReport.ts
index d43ebf9342..8f8d759004 100644
--- a/packages/backend/src/models/AbuseUserReport.ts
+++ b/packages/backend/src/models/AbuseUserReport.ts
@@ -4,6 +4,7 @@
*/
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
+import { MiInstance } from '@/models/Instance.js';
import { id } from './util/id.js';
import { MiUser } from './User.js';
@@ -88,11 +89,31 @@ export class MiAbuseUserReport {
})
public targetUserHost: string | null;
+ @ManyToOne(() => MiInstance, {
+ // TODO create a foreign key constraint after hazelnoot/labs/persisted-instance-blocks is merged
+ createForeignKeyConstraints: false,
+ })
+ @JoinColumn({
+ name: 'targetUserHost',
+ referencedColumnName: 'host',
+ })
+ public targetUserInstance: MiInstance | null;
+
@Index()
@Column('varchar', {
length: 128, nullable: true,
comment: '[Denormalized]',
})
public reporterHost: string | null;
+
+ @ManyToOne(() => MiInstance, {
+ // TODO create a foreign key constraint after hazelnoot/labs/persisted-instance-blocks is merged
+ createForeignKeyConstraints: false,
+ })
+ @JoinColumn({
+ name: 'reporterHost',
+ referencedColumnName: 'host',
+ })
+ public reporterInstance: MiInstance | null;
//#endregion
}
diff --git a/packages/backend/src/models/User.ts b/packages/backend/src/models/User.ts
index 3ef5817672..2f13400944 100644
--- a/packages/backend/src/models/User.ts
+++ b/packages/backend/src/models/User.ts
@@ -8,6 +8,7 @@ import { type UserUnsignedFetchOption, userUnsignedFetchOptions } from '@/const.
import { MiInstance } from '@/models/Instance.js';
import { id } from './util/id.js';
import { MiDriveFile } from './DriveFile.js';
+import type { MiUserProfile } from './UserProfile.js';
@Entity('user')
@Index(['usernameLower', 'host'], { unique: true })
@@ -395,6 +396,9 @@ export class MiUser {
})
public attributionDomains: string[];
+ @OneToOne('user_profile', (profile: MiUserProfile) => profile.user)
+ public userProfile: MiUserProfile | null;
+
constructor(data: Partial<MiUser>) {
if (data == null) return;
diff --git a/packages/backend/src/models/UserProfile.ts b/packages/backend/src/models/UserProfile.ts
index 29c453dd71..6ee72e6ddd 100644
--- a/packages/backend/src/models/UserProfile.ts
+++ b/packages/backend/src/models/UserProfile.ts
@@ -17,7 +17,7 @@ export class MiUserProfile {
@PrimaryColumn(id())
public userId: MiUser['id'];
- @OneToOne(type => MiUser, {
+ @OneToOne(() => MiUser, user => user.userProfile, {
onDelete: 'CASCADE',
})
@JoinColumn()