From 21b04c535403206e73a3e00c27e572e3525a902b Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Fri, 13 Feb 2026 11:17:20 +0100 Subject: [PATCH] fehler im login korrigiert --- api/src/model/entitites/user/user.entity.ts | 2 +- api/src/model/repositories/user.repository.ts | 8 ++++++-- api/src/modules/auth/auth.service.ts | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/api/src/model/entitites/user/user.entity.ts b/api/src/model/entitites/user/user.entity.ts index e9a9875..cbd5472 100644 --- a/api/src/model/entitites/user/user.entity.ts +++ b/api/src/model/entitites/user/user.entity.ts @@ -58,7 +58,7 @@ export class User implements IUser { @DeleteDateColumn() deletedAt: Date; - @OneToOne(() => UserSettings, (settings) => settings.user, { cascade: true }) + @OneToOne(() => UserSettings, (settings) => settings.user, { cascade: true, onDelete: 'CASCADE', onUpdate: 'NO ACTION', }) settings: UserSettings; accessToken?: string; diff --git a/api/src/model/repositories/user.repository.ts b/api/src/model/repositories/user.repository.ts index df402d7..b255390 100644 --- a/api/src/model/repositories/user.repository.ts +++ b/api/src/model/repositories/user.repository.ts @@ -15,8 +15,12 @@ export class UserRepository extends Repository { super(User, dataSource.createEntityManager()); } - findByUsername(username: string): Promise { - return this.findOne({ where: { username }, relations: ['external'] }); + findByUsername(username: string, {settings = false}: { settings: boolean }): Promise { + const relations = ['external']; + if (settings ) { + relations.push('settings') + } + return this.findOne({ where: { username }, relations: relations }); } findById(id: string): Promise { diff --git a/api/src/modules/auth/auth.service.ts b/api/src/modules/auth/auth.service.ts index 5e85ffc..95e563f 100644 --- a/api/src/modules/auth/auth.service.ts +++ b/api/src/modules/auth/auth.service.ts @@ -49,7 +49,7 @@ export class AuthService { }): Promise { const payload: IExternalAccessPayload = this.jwt.decode(access_token); return new Promise(async (resolve) => { - let user = await this.userRepo.findByUsername(payload.username); + let user = await this.userRepo.findByUsername(payload.username, { settings: true }); if (!user) { user = await this.userRepo.createUser({ @@ -69,7 +69,9 @@ export class AuthService { user.external.accessToken = access_token; user.external.refreshToken = refresh_token; - await this.userRepo.save(user); + try { + await this.userRepo.save(user); + } catch {} resolve(user); }); }