Merge pull request #11660 from strapi/v4/fix-sso-query

[V4] Fix sso existing user query
This commit is contained in:
Alexandre BODIN 2021-11-23 18:20:00 +01:00 committed by GitHub
commit aaef74b58a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions

View File

@ -27,7 +27,7 @@ const authenticate = async (ctx, next) => {
return ctx.redirect(redirectUrls.error);
}
const user = await getService('user').findOne({ email: profile.email });
const user = await getService('user').findOneByEmail(profile.email);
const scenario = user ? existingUserScenario : nonExistingUserScenario;
return scenario(ctx, next)(user || profile, provider);

View File

@ -180,6 +180,19 @@ const findOne = async (id, populate = ['roles']) => {
return strapi.entityService.findOne('admin::user', id, { populate });
};
/**
* Find one user by its email
* @param {string} id email
* @param {string || string[] || object} populate
* @returns
*/
const findOneByEmail = async (email, populate = []) => {
return strapi.query('admin::user').findOne({
where: { email },
populate,
});
};
/** Find many users (paginated)
* @param query
* @returns {Promise<user>}
@ -309,6 +322,7 @@ module.exports = {
register,
sanitizeUser,
findOne,
findOneByEmail,
findPage,
deleteById,
deleteByIds,