mirror of
https://gitee.com/dify_ai/dify.git
synced 2024-12-02 19:27:48 +08:00
fix: allow special characters in email (#5327)
Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
parent
edffa5666d
commit
7305713b97
@ -25,7 +25,7 @@ class TimestampField(fields.Raw):
|
||||
|
||||
def email(email):
|
||||
# Define a regex pattern for email addresses
|
||||
pattern = r"^[\w\.-]+@([\w-]+\.)+[\w-]{2,}$"
|
||||
pattern = r"^[\w\.!#$%&'*+\-/=?^_`{|}~]+@([\w-]+\.)+[\w-]{2,}$"
|
||||
# Check if the email matches the pattern
|
||||
if re.match(pattern, email) is not None:
|
||||
return email
|
||||
|
25
api/tests/unit_tests/libs/test_email.py
Normal file
25
api/tests/unit_tests/libs/test_email.py
Normal file
@ -0,0 +1,25 @@
|
||||
from libs.helper import email
|
||||
|
||||
|
||||
def test_email_with_valid_email():
|
||||
assert email("test@example.com") == "test@example.com"
|
||||
assert email("TEST12345@example.com") == "TEST12345@example.com"
|
||||
assert email("test+test@example.com") == "test+test@example.com"
|
||||
assert email("!#$%&'*+-/=?^_{|}~`@example.com") == "!#$%&'*+-/=?^_{|}~`@example.com"
|
||||
|
||||
|
||||
def test_email_with_invalid_email():
|
||||
try:
|
||||
email("invalid_email")
|
||||
except ValueError as e:
|
||||
assert str(e) == "invalid_email is not a valid email."
|
||||
|
||||
try:
|
||||
email("@example.com")
|
||||
except ValueError as e:
|
||||
assert str(e) == "@example.com is not a valid email."
|
||||
|
||||
try:
|
||||
email("()@example.com")
|
||||
except ValueError as e:
|
||||
assert str(e) == "()@example.com is not a valid email."
|
@ -7,11 +7,10 @@ import useSWR from 'swr'
|
||||
import Link from 'next/link'
|
||||
import Toast from '../components/base/toast'
|
||||
import style from './page.module.css'
|
||||
import { IS_CE_EDITION, SUPPORT_MAIL_LOGIN, apiPrefix } from '@/config'
|
||||
import { IS_CE_EDITION, SUPPORT_MAIL_LOGIN, apiPrefix, emailRegex } from '@/config'
|
||||
import Button from '@/app/components/base/button'
|
||||
import { login, oauth } from '@/service/common'
|
||||
import { getPurifyHref } from '@/utils'
|
||||
const validEmailReg = /^[\w\.-]+@([\w-]+\.)+[\w-]{2,}$/
|
||||
|
||||
type IState = {
|
||||
formValid: boolean
|
||||
@ -78,7 +77,7 @@ const NormalForm = () => {
|
||||
|
||||
const [isLoading, setIsLoading] = useState(false)
|
||||
const handleEmailPasswordLogin = async () => {
|
||||
if (!validEmailReg.test(email)) {
|
||||
if (!emailRegex.test(email)) {
|
||||
Toast.notify({
|
||||
type: 'error',
|
||||
message: t('login.error.emailInValid'),
|
||||
|
@ -102,7 +102,7 @@ export const DEFAULT_PARAGRAPH_VALUE_MAX_LEN = 1000
|
||||
|
||||
export const zhRegex = /^[\u4E00-\u9FA5]$/m
|
||||
export const emojiRegex = /^[\uD800-\uDBFF][\uDC00-\uDFFF]$/m
|
||||
export const emailRegex = /^[\w\.-]+@([\w-]+\.)+[\w-]{2,}$/m
|
||||
export const emailRegex = /^[\w.!#$%&'*+\-/=?^{|}~]+@([\w-]+\.)+[\w-]{2,}$/m
|
||||
const MAX_ZN_VAR_NAME_LENGHT = 8
|
||||
const MAX_EN_VAR_VALUE_LENGHT = 30
|
||||
export const getMaxVarNameLength = (value: string) => {
|
||||
|
Loading…
Reference in New Issue
Block a user