fix: appropriately throw unverified email error (#12933)
<!-- Thank you for the PR! Please go through the checklist below and make sure you've completed all the steps. Please review the [CONTRIBUTING.md](https://github.com/payloadcms/payload/blob/main/CONTRIBUTING.md) document in this repository if you haven't already. The following items will ensure that your PR is handled as smoothly as possible: - PR Title must follow conventional commits format. For example, `feat: my new feature`, `fix(plugin-seo): my fix`. - Minimal description explained as if explained to someone not immediately familiar with the code. - Provide before/after screenshots or code diffs if applicable. - Link any related issues/discussions from GitHub or Discord. - Add review comments if necessary to explain to the reviewer the logic behind a change ### What? ### Why? ### How? Fixes # --> ### What? This PR addresses an issue where the order of operations/conditions for throwing an unverified email error were incorrect. ### Why? To properly throw an unverified email error under the correct conditions. ### How? Pushing this error to be thrown later in the operation.
This commit is contained in:
@@ -4,7 +4,6 @@ import type {
|
||||
AuthOperationsFromCollectionSlug,
|
||||
Collection,
|
||||
DataFromCollectionSlug,
|
||||
SanitizedCollectionConfig,
|
||||
} from '../../collections/config/types.js'
|
||||
import type { CollectionSlug } from '../../index.js'
|
||||
import type { PayloadRequest, Where } from '../../types/index.js'
|
||||
@@ -46,14 +45,12 @@ export type Arguments<TSlug extends CollectionSlug> = {
|
||||
}
|
||||
|
||||
type CheckLoginPermissionArgs = {
|
||||
collection: SanitizedCollectionConfig
|
||||
loggingInWithUsername?: boolean
|
||||
req: PayloadRequest
|
||||
user: any
|
||||
}
|
||||
|
||||
export const checkLoginPermission = ({
|
||||
collection,
|
||||
loggingInWithUsername,
|
||||
req,
|
||||
user,
|
||||
@@ -62,10 +59,6 @@ export const checkLoginPermission = ({
|
||||
throw new AuthenticationError(req.t, Boolean(loggingInWithUsername))
|
||||
}
|
||||
|
||||
if (collection.auth.verify && user._verified === false) {
|
||||
throw new UnverifiedEmail({ t: req.t })
|
||||
}
|
||||
|
||||
if (isUserLocked(new Date(user.lockUntil).getTime())) {
|
||||
throw new LockedAuth(req.t)
|
||||
}
|
||||
@@ -213,7 +206,6 @@ export const loginOperation = async <TSlug extends CollectionSlug>(
|
||||
})
|
||||
|
||||
checkLoginPermission({
|
||||
collection: collectionConfig,
|
||||
loggingInWithUsername: Boolean(canLoginWithUsername && sanitizedUsername),
|
||||
req,
|
||||
user,
|
||||
@@ -241,6 +233,10 @@ export const loginOperation = async <TSlug extends CollectionSlug>(
|
||||
throw new AuthenticationError(req.t)
|
||||
}
|
||||
|
||||
if (collectionConfig.auth.verify && user._verified === false) {
|
||||
throw new UnverifiedEmail({ t: req.t })
|
||||
}
|
||||
|
||||
const fieldsToSignArgs: Parameters<typeof getFieldsToSign>[0] = {
|
||||
collectionConfig,
|
||||
email: sanitizedEmail!,
|
||||
|
||||
Reference in New Issue
Block a user