邮箱后缀字段名调整
This commit is contained in:
parent
11962700ff
commit
719b225227
|
|
@ -589,11 +589,11 @@ export async function loginByAccount(params, context) {
|
|||
// const config = applicationPassport.passport.config as EmailConfig;
|
||||
// const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
// assert(emailConfig);
|
||||
// const emailSuffix = config.emailSuffix;
|
||||
// const emailSuffixes = config.emailSuffixes;
|
||||
// // 检查邮箱后缀是否满足配置
|
||||
// if (emailSuffix?.length! > 0) {
|
||||
// if (emailSuffixes?.length! > 0) {
|
||||
// let isValid = false;
|
||||
// for (const suffix of emailSuffix!) {
|
||||
// for (const suffix of emailSuffixes!) {
|
||||
// if (account.endsWith(suffix)) {
|
||||
// isValid = true;
|
||||
// break;
|
||||
|
|
@ -1002,11 +1002,11 @@ export async function loginByEmail(params, context) {
|
|||
const config = applicationPassport.passport.config;
|
||||
const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
assert(emailConfig);
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length > 0) {
|
||||
if (emailSuffixes?.length > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix) {
|
||||
for (const suffix of emailSuffixes) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
@ -1255,11 +1255,11 @@ export async function bindByEmail(params, context) {
|
|||
const config = applicationPassport.passport.config;
|
||||
const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
assert(emailConfig);
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length > 0) {
|
||||
if (emailSuffixes?.length > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix) {
|
||||
for (const suffix of emailSuffixes) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
@ -2193,11 +2193,11 @@ export async function sendCaptchaByEmail({ email, env, type: captchaType, }, con
|
|||
const duration = config.codeDuration || 5;
|
||||
const digit = config.digit || 4;
|
||||
const mockSend = config.mockSend;
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length > 0) {
|
||||
if (emailSuffixes?.length > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix) {
|
||||
for (const suffix of emailSuffixes) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Style } from '../../../../types/Style';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../../oak-app-domain").EntityDict, keyof import("../../../../oak-app-domain").EntityDict, false, {
|
||||
style: Style;
|
||||
entity: "platform" | "system" | "application";
|
||||
entity: "system" | "platform" | "application";
|
||||
entityId: string;
|
||||
name: string;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Config } from '../../../types/Config';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, keyof import("../../../oak-app-domain").EntityDict, false, {
|
||||
config: Config;
|
||||
entity: "platform" | "system";
|
||||
entity: "system" | "platform";
|
||||
name: string;
|
||||
entityId: string;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -15,19 +15,19 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
type?: ButtonProps['type'] | AmButtonProps['type'];
|
||||
executeText?: string | undefined;
|
||||
buttonProps?: (ButtonProps & {
|
||||
color?: "default" | "primary" | "success" | "warning" | "danger" | undefined;
|
||||
color?: "default" | "success" | "warning" | "primary" | "danger" | undefined;
|
||||
fill?: "none" | "solid" | "outline" | undefined;
|
||||
size?: "small" | "large" | "middle" | "mini" | undefined;
|
||||
size?: "small" | "middle" | "large" | "mini" | undefined;
|
||||
block?: boolean | undefined;
|
||||
loading?: boolean | "auto" | undefined;
|
||||
loadingText?: string | undefined;
|
||||
loadingIcon?: import("react").ReactNode;
|
||||
disabled?: boolean | undefined;
|
||||
onClick?: ((event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => unknown) | undefined;
|
||||
type?: "reset" | "submit" | "button" | undefined;
|
||||
type?: "button" | "reset" | "submit" | undefined;
|
||||
shape?: "default" | "rounded" | "rectangular" | undefined;
|
||||
children?: import("react").ReactNode;
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseUp" | "onMouseDown" | "onTouchStart" | "onTouchEnd"> & {
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseDown" | "onMouseUp" | "onTouchEnd" | "onTouchStart"> & {
|
||||
className?: string | undefined;
|
||||
style?: (import("react").CSSProperties & Partial<Record<"--text-color" | "--background-color" | "--border-radius" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
|
||||
tabIndex?: number | undefined;
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import { Editor, Toolbar } from "@wangeditor/editor-for-react";
|
|||
import { PlusOutlined, CloseOutlined } from '@ant-design/icons';
|
||||
const { TextArea } = Input;
|
||||
const { Text } = Typography;
|
||||
function RenderEmailSuffix(props) {
|
||||
const { emailSuffix, onChange, t } = props;
|
||||
function RenderEmailSuffixes(props) {
|
||||
const { emailSuffixes, onChange, t } = props;
|
||||
const [inputVisible, setInputVisible] = useState(false);
|
||||
const [inputValue, setInputValue] = useState('');
|
||||
const inputRef = useRef(null);
|
||||
|
|
@ -25,21 +25,21 @@ function RenderEmailSuffix(props) {
|
|||
setInputValue(e.target.value);
|
||||
};
|
||||
const handleInputConfirm = () => {
|
||||
if (inputValue && !emailSuffix?.includes(inputValue)) {
|
||||
onChange([...emailSuffix || [], inputValue]);
|
||||
if (inputValue && !emailSuffixes?.includes(inputValue)) {
|
||||
onChange([...emailSuffixes || [], inputValue]);
|
||||
}
|
||||
setInputVisible(false);
|
||||
setInputValue('');
|
||||
};
|
||||
const handleClose = (removedTag) => {
|
||||
const emailSuffix2 = emailSuffix.filter((tag) => tag !== removedTag);
|
||||
onChange(emailSuffix2);
|
||||
const emailSuffixes2 = emailSuffixes.filter((tag) => tag !== removedTag);
|
||||
onChange(emailSuffixes2);
|
||||
};
|
||||
const showInput = () => {
|
||||
setInputVisible(true);
|
||||
};
|
||||
return (<Flex gap="4px 0" wrap="wrap">
|
||||
{(emailSuffix || []).map((tag, index) => {
|
||||
{(emailSuffixes || []).map((tag, index) => {
|
||||
const isLongTag = tag.length > 20;
|
||||
const tagElem = (<Tag closeIcon={<CloseOutlined />} key={tag} onClose={() => handleClose(tag)}>
|
||||
<span>
|
||||
|
|
@ -66,7 +66,7 @@ export default function Email(props) {
|
|||
const [html, setHtml] = useState(config?.html || '');
|
||||
const [emailCodeDuration, setEmailCodeDuration] = useState(config?.codeDuration || '');
|
||||
const [emailDigit, setEmailDigit] = useState(config?.digit || '');
|
||||
const [emailSuffix, setEmailSuffix] = useState(config?.emailSuffix || []);
|
||||
const [emailSuffixes, setEmailSuffixes] = useState(config?.emailSuffixes || []);
|
||||
// editor 实例
|
||||
const [editor, setEditor] = useState(null); // TS 语法
|
||||
// 工具栏配置
|
||||
|
|
@ -91,7 +91,7 @@ export default function Email(props) {
|
|||
setHtml(config?.html || '');
|
||||
setEmailCodeDuration(config?.codeDuration || '');
|
||||
setEmailDigit(config?.digit || '');
|
||||
setEmailSuffix(config?.emailSuffix || []);
|
||||
setEmailSuffixes(config?.emailSuffixes || []);
|
||||
if (config?.html) {
|
||||
setEContentType('html');
|
||||
}
|
||||
|
|
@ -205,9 +205,9 @@ export default function Email(props) {
|
|||
}}/>
|
||||
</Form.Item>
|
||||
<Form.Item label="邮箱后缀" tooltip="允许的邮箱后缀(如: qq.com),不填则不校验">
|
||||
<RenderEmailSuffix t={t} emailSuffix={emailSuffix} onChange={(v) => {
|
||||
if (v !== config?.emailSuffix) {
|
||||
updateConfig(id, config, 'emailSuffix', v, 'email');
|
||||
<RenderEmailSuffixes t={t} emailSuffixes={emailSuffixes} onChange={(v) => {
|
||||
if (v !== config?.emailSuffixes) {
|
||||
updateConfig(id, config, 'emailSuffixes', v, 'email');
|
||||
}
|
||||
}}/>
|
||||
</Form.Item>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { EntityDict } from '../../../oak-app-domain';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, keyof EntityDict, false, {
|
||||
type: "login" | "bind";
|
||||
type: "bind" | "login";
|
||||
url: string;
|
||||
size: undefined;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export type EmailConfig = {
|
|||
html?: string;
|
||||
codeDuration?: number;
|
||||
digit?: number;
|
||||
emailSuffix?: string[];
|
||||
emailSuffixes?: string[];
|
||||
};
|
||||
export type PfwConfig = {
|
||||
appId: string;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ export type EmailConfig = {
|
|||
html?: string;
|
||||
codeDuration?: number;
|
||||
digit?: number;
|
||||
emailSuffix?: string[];
|
||||
emailSuffixes?: string[];
|
||||
};
|
||||
export type PfwConfig = {
|
||||
appId: string;
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -595,11 +595,11 @@ async function loginByAccount(params, context) {
|
|||
// const config = applicationPassport.passport.config as EmailConfig;
|
||||
// const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
// assert(emailConfig);
|
||||
// const emailSuffix = config.emailSuffix;
|
||||
// const emailSuffixes = config.emailSuffixes;
|
||||
// // 检查邮箱后缀是否满足配置
|
||||
// if (emailSuffix?.length! > 0) {
|
||||
// if (emailSuffixes?.length! > 0) {
|
||||
// let isValid = false;
|
||||
// for (const suffix of emailSuffix!) {
|
||||
// for (const suffix of emailSuffixes!) {
|
||||
// if (account.endsWith(suffix)) {
|
||||
// isValid = true;
|
||||
// break;
|
||||
|
|
@ -1009,11 +1009,11 @@ async function loginByEmail(params, context) {
|
|||
const config = applicationPassport.passport.config;
|
||||
const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
(0, assert_1.assert)(emailConfig);
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length > 0) {
|
||||
if (emailSuffixes?.length > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix) {
|
||||
for (const suffix of emailSuffixes) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
@ -1264,11 +1264,11 @@ async function bindByEmail(params, context) {
|
|||
const config = applicationPassport.passport.config;
|
||||
const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
(0, assert_1.assert)(emailConfig);
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length > 0) {
|
||||
if (emailSuffixes?.length > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix) {
|
||||
for (const suffix of emailSuffixes) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
@ -2210,11 +2210,11 @@ async function sendCaptchaByEmail({ email, env, type: captchaType, }, context) {
|
|||
const duration = config.codeDuration || 5;
|
||||
const digit = config.digit || 4;
|
||||
const mockSend = config.mockSend;
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length > 0) {
|
||||
if (emailSuffixes?.length > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix) {
|
||||
for (const suffix of emailSuffixes) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export type EmailConfig = {
|
|||
html?: string;
|
||||
codeDuration?: number;
|
||||
digit?: number;
|
||||
emailSuffix?: string[];
|
||||
emailSuffixes?: string[];
|
||||
};
|
||||
export type PfwConfig = {
|
||||
appId: string;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ export type EmailConfig = {
|
|||
html?: string;
|
||||
codeDuration?: number;
|
||||
digit?: number;
|
||||
emailSuffix?: string[];
|
||||
emailSuffixes?: string[];
|
||||
};
|
||||
export type PfwConfig = {
|
||||
appId: string;
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export declare function createToDo<ED extends EntityDict & BaseEntityDict, T ext
|
|||
redirectTo: EntityDict['toDo']['OpSchema']['redirectTo'];
|
||||
entity: any;
|
||||
entityId: string;
|
||||
}, userIds?: string[]): Promise<0 | 1>;
|
||||
}, userIds?: string[]): Promise<1 | 0>;
|
||||
/**
|
||||
* 完成todo例程,当在entity对象上进行action操作时(操作条件是filter),将对应的todo完成
|
||||
* 必须在entity的action的后trigger中调用
|
||||
|
|
|
|||
|
|
@ -791,12 +791,12 @@ export async function loginByAccount<ED extends EntityDict>(
|
|||
// const config = applicationPassport.passport.config as EmailConfig;
|
||||
// const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
// assert(emailConfig);
|
||||
// const emailSuffix = config.emailSuffix;
|
||||
// const emailSuffixes = config.emailSuffixes;
|
||||
|
||||
// // 检查邮箱后缀是否满足配置
|
||||
// if (emailSuffix?.length! > 0) {
|
||||
// if (emailSuffixes?.length! > 0) {
|
||||
// let isValid = false;
|
||||
// for (const suffix of emailSuffix!) {
|
||||
// for (const suffix of emailSuffixes!) {
|
||||
// if (account.endsWith(suffix)) {
|
||||
// isValid = true;
|
||||
// break;
|
||||
|
|
@ -1269,12 +1269,12 @@ export async function loginByEmail<ED extends EntityDict>(
|
|||
const config = applicationPassport.passport.config as EmailConfig;
|
||||
const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
assert(emailConfig);
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length! > 0) {
|
||||
if (emailSuffixes?.length! > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix!) {
|
||||
for (const suffix of emailSuffixes!) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
@ -1592,12 +1592,12 @@ export async function bindByEmail<ED extends EntityDict>(
|
|||
const config = applicationPassport.passport.config as EmailConfig;
|
||||
const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account);
|
||||
assert(emailConfig);
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length! > 0) {
|
||||
if (emailSuffixes?.length! > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix!) {
|
||||
for (const suffix of emailSuffixes!) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
@ -2900,12 +2900,12 @@ export async function sendCaptchaByEmail<ED extends EntityDict>(
|
|||
const duration = config.codeDuration || 5;
|
||||
const digit = config.digit || 4;
|
||||
const mockSend = config.mockSend;
|
||||
const emailSuffix = config.emailSuffix;
|
||||
const emailSuffixes = config.emailSuffixes;
|
||||
|
||||
// 检查邮箱后缀是否满足配置
|
||||
if (emailSuffix?.length! > 0) {
|
||||
if (emailSuffixes?.length! > 0) {
|
||||
let isValid = false;
|
||||
for (const suffix of emailSuffix!) {
|
||||
for (const suffix of emailSuffixes!) {
|
||||
if (email.endsWith(suffix)) {
|
||||
isValid = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@ import { PlusOutlined, CloseOutlined } from '@ant-design/icons';
|
|||
const { TextArea } = Input;
|
||||
const { Text } = Typography;
|
||||
|
||||
function RenderEmailSuffix(props: {
|
||||
emailSuffix?: string[];
|
||||
function RenderEmailSuffixes(props: {
|
||||
emailSuffixes?: string[];
|
||||
onChange: (v: string[]) => void;
|
||||
t: (k: string) => string;
|
||||
}) {
|
||||
const { emailSuffix, onChange, t } = props;
|
||||
const { emailSuffixes, onChange, t } = props;
|
||||
const [inputVisible, setInputVisible] = useState(false);
|
||||
const [inputValue, setInputValue] = useState('');
|
||||
const inputRef = useRef<InputRef>(null);
|
||||
|
|
@ -38,16 +38,16 @@ function RenderEmailSuffix(props: {
|
|||
};
|
||||
|
||||
const handleInputConfirm = () => {
|
||||
if (inputValue && !emailSuffix?.includes(inputValue)) {
|
||||
onChange([...emailSuffix || [], inputValue]);
|
||||
if (inputValue && !emailSuffixes?.includes(inputValue)) {
|
||||
onChange([...emailSuffixes || [], inputValue]);
|
||||
}
|
||||
setInputVisible(false);
|
||||
setInputValue('');
|
||||
};
|
||||
|
||||
const handleClose = (removedTag: string) => {
|
||||
const emailSuffix2 = emailSuffix!.filter((tag) => tag !== removedTag);
|
||||
onChange(emailSuffix2);
|
||||
const emailSuffixes2 = emailSuffixes!.filter((tag) => tag !== removedTag);
|
||||
onChange(emailSuffixes2);
|
||||
};
|
||||
const showInput = () => {
|
||||
setInputVisible(true);
|
||||
|
|
@ -55,7 +55,7 @@ function RenderEmailSuffix(props: {
|
|||
|
||||
return (
|
||||
<Flex gap="4px 0" wrap="wrap">
|
||||
{(emailSuffix || []).map<React.ReactNode>((tag, index) => {
|
||||
{(emailSuffixes || []).map<React.ReactNode>((tag, index) => {
|
||||
const isLongTag = tag.length > 20;
|
||||
const tagElem = (
|
||||
<Tag
|
||||
|
|
@ -112,7 +112,7 @@ export default function Email(props: {
|
|||
const [html, setHtml] = useState(config?.html || '');
|
||||
const [emailCodeDuration, setEmailCodeDuration] = useState(config?.codeDuration || '');
|
||||
const [emailDigit, setEmailDigit] = useState(config?.digit || '');
|
||||
const [emailSuffix, setEmailSuffix] = useState(config?.emailSuffix || []);
|
||||
const [emailSuffixes, setEmailSuffixes] = useState(config?.emailSuffixes || []);
|
||||
|
||||
// editor 实例
|
||||
const [editor, setEditor] = useState<IDomEditor | null>(null) // TS 语法
|
||||
|
|
@ -141,7 +141,7 @@ export default function Email(props: {
|
|||
setHtml(config?.html || '');
|
||||
setEmailCodeDuration(config?.codeDuration || '');
|
||||
setEmailDigit(config?.digit || '');
|
||||
setEmailSuffix(config?.emailSuffix || []);
|
||||
setEmailSuffixes(config?.emailSuffixes || []);
|
||||
if (config?.html) {
|
||||
setEContentType('html');
|
||||
} else {
|
||||
|
|
@ -347,12 +347,12 @@ export default function Email(props: {
|
|||
label="邮箱后缀"
|
||||
tooltip="允许的邮箱后缀(如: qq.com),不填则不校验"
|
||||
>
|
||||
<RenderEmailSuffix
|
||||
<RenderEmailSuffixes
|
||||
t={t}
|
||||
emailSuffix={emailSuffix}
|
||||
emailSuffixes={emailSuffixes}
|
||||
onChange={(v) => {
|
||||
if (v !== (config as EmailConfig)?.emailSuffix) {
|
||||
updateConfig(id, config!, 'emailSuffix', v, 'email');
|
||||
if (v !== (config as EmailConfig)?.emailSuffixes) {
|
||||
updateConfig(id, config!, 'emailSuffixes', v, 'email');
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ export type EmailConfig = {
|
|||
html?: string;
|
||||
codeDuration?: number; //验证码有效时间 单位分钟, 不填5分钟
|
||||
digit?: number; //验证码位数 4~8,默认为4位
|
||||
emailSuffix?: string[] //邮箱后缀,不填则不校验
|
||||
emailSuffixes?: string[] //邮箱后缀,不填则不校验
|
||||
};
|
||||
|
||||
export type PfwConfig = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue