1
0
mirror of https://github.com/immich-app/immich.git synced 2024-11-24 08:52:28 +02:00

fix(server): oauth linking error message (#10287)

This commit is contained in:
Jason Rasmussen 2024-06-13 11:42:07 -04:00 committed by GitHub
parent 8c2195c820
commit c6ab047167
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 5 deletions

View File

@ -395,12 +395,12 @@ describe('AuthService', () => {
userMock.getAdmin.mockResolvedValue(userStub.user1); userMock.getAdmin.mockResolvedValue(userStub.user1);
userMock.create.mockResolvedValue(userStub.user1); userMock.create.mockResolvedValue(userStub.user1);
await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).rejects.toThrow(
loginResponseStub.user1oauth, BadRequestException,
); );
expect(userMock.update).not.toHaveBeenCalled(); expect(userMock.update).not.toHaveBeenCalled();
expect(userMock.create).toHaveBeenCalled(); expect(userMock.create).not.toHaveBeenCalled();
}); });
it('should allow auto registering by default', async () => { it('should allow auto registering by default', async () => {

View File

@ -198,10 +198,14 @@ export class AuthService {
// link existing user // link existing user
if (!user) { if (!user) {
const emailUser = await this.userRepository.getByEmail(profile.email); const emailUser = await this.userRepository.getByEmail(profile.email);
if (emailUser && !emailUser.oauthId) { if (emailUser) {
if (emailUser.oauthId) {
throw new BadRequestException('User already exists, but is linked to another account.');
} else {
user = await this.userRepository.update(emailUser.id, { oauthId: profile.sub }); user = await this.userRepository.update(emailUser.id, { oauthId: profile.sub });
} }
} }
}
const { autoRegister, defaultStorageQuota, storageLabelClaim, storageQuotaClaim } = config.oauth; const { autoRegister, defaultStorageQuota, storageLabelClaim, storageQuotaClaim } = config.oauth;