新增注册邮箱名自定义字符过滤
This commit is contained in:
@@ -17,7 +17,7 @@ const accountService = {
|
||||
|
||||
async add(c, params, userId) {
|
||||
|
||||
const {addEmailVerify , addEmail, manyEmail, addVerifyCount, minEmailPrefix} = await settingService.query(c);
|
||||
const { addEmailVerify , addEmail, manyEmail, addVerifyCount, minEmailPrefix, emailPrefixFilter } = await settingService.query(c);
|
||||
|
||||
let { email, token } = params;
|
||||
|
||||
@@ -43,6 +43,10 @@ const accountService = {
|
||||
throw new BizError(t('minEmailPrefix', { msg: minEmailPrefix } ));
|
||||
}
|
||||
|
||||
if (emailPrefixFilter.some(content => emailUtils.getName(email).includes(content))) {
|
||||
throw new BizError(t('banEmailPrefix'));
|
||||
}
|
||||
|
||||
let accountRow = await this.selectByEmailIncludeDel(c, email);
|
||||
|
||||
if (accountRow && accountRow.isDel === isDel.DELETE) {
|
||||
|
||||
@@ -26,7 +26,7 @@ const loginService = {
|
||||
|
||||
const { email, password, token, code } = params;
|
||||
|
||||
let {regKey, register, registerVerify, regVerifyCount, minEmailPrefix} = await settingService.query(c)
|
||||
let { regKey, register, registerVerify, regVerifyCount, minEmailPrefix, emailPrefixFilter } = await settingService.query(c)
|
||||
|
||||
if (oauth) {
|
||||
registerVerify = settingConst.registerVerify.CLOSE;
|
||||
@@ -45,6 +45,10 @@ const loginService = {
|
||||
throw new BizError(t('minEmailPrefix', { msg: minEmailPrefix } ));
|
||||
}
|
||||
|
||||
if (emailPrefixFilter.some(content => emailUtils.getName(email).includes(content))) {
|
||||
throw new BizError(t('banEmailPrefix'));
|
||||
}
|
||||
|
||||
if (emailUtils.getName(email).length > 64) {
|
||||
throw new BizError(t('emailLengthLimit'));
|
||||
}
|
||||
|
||||
@@ -58,6 +58,8 @@ const settingService = {
|
||||
setting.linuxdoCallbackUrl = c.env.linuxdo_callback_url;
|
||||
setting.linuxdoSwitch = linuxdoSwitch;
|
||||
|
||||
setting.emailPrefixFilter = setting.emailPrefixFilter.split(",").filter(Boolean);
|
||||
|
||||
c.set?.('setting', setting);
|
||||
return setting;
|
||||
},
|
||||
@@ -108,6 +110,11 @@ const settingService = {
|
||||
Object.keys(resendTokens).forEach(domain => {
|
||||
if (!resendTokens[domain]) delete resendTokens[domain];
|
||||
});
|
||||
|
||||
if (Array.isArray(params.emailPrefixFilter)) {
|
||||
params.emailPrefixFilter = params.emailPrefixFilter + '';
|
||||
}
|
||||
|
||||
params.resendTokens = JSON.stringify(resendTokens);
|
||||
await orm(c).update(setting).set({ ...params }).returning().get();
|
||||
await this.refresh(c);
|
||||
|
||||
Reference in New Issue
Block a user