X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fauth%2Foauth-model.ts;h=5d68f44e9c50a4e6dc62725dbd25f012601451f8;hb=f7ac03ee94d9d32e26bd712e8dc05a6109f5e835;hp=b68cce6d232b4d2c2cdaf1616a6731051f349766;hpb=c3edc5b074aa4bb1861ed0a94d3713808e87170f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/auth/oauth-model.ts b/server/lib/auth/oauth-model.ts index b68cce6d2..5d68f44e9 100644 --- a/server/lib/auth/oauth-model.ts +++ b/server/lib/auth/oauth-model.ts @@ -9,9 +9,9 @@ import { UserAdminFlag } from '@shared/models/users/user-flag.model' import { UserRole } from '@shared/models/users/user-role' import { logger } from '../../helpers/logger' import { CONFIG } from '../../initializers/config' -import { UserModel } from '../../models/user/user' import { OAuthClientModel } from '../../models/oauth/oauth-client' import { OAuthTokenModel } from '../../models/oauth/oauth-token' +import { UserModel } from '../../models/user/user' import { createUserAccountAndChannelAndPlaylist } from '../user' import { TokensCache } from './tokens-cache' @@ -98,7 +98,14 @@ async function getUser (usernameOrEmail?: string, password?: string, bypassLogin // Then we just go through a regular login process if (user.pluginAuth !== null) { // This user does not belong to this plugin, skip it - if (user.pluginAuth !== bypassLogin.pluginName) return null + if (user.pluginAuth !== bypassLogin.pluginName) { + logger.info( + 'Cannot bypass oauth login by plugin %s because %s has another plugin auth method (%s).', + bypassLogin.pluginName, bypassLogin.user.email, user.pluginAuth + ) + + return null + } checkUserValidityOrThrow(user) @@ -109,6 +116,7 @@ async function getUser (usernameOrEmail?: string, password?: string, bypassLogin logger.debug('Getting User (username/email: ' + usernameOrEmail + ', password: ******).') const user = await UserModel.loadByUsernameOrEmail(usernameOrEmail) + // If we don't find the user, or if the user belongs to a plugin if (!user || user.pluginAuth !== null || !password) return null