fix: 用户初始化默认增加复杂度校验

This commit is contained in:
ssongliu 2023-03-01 14:05:55 +08:00 committed by ssongliu
parent 5e71ed9391
commit 98efb98190
7 changed files with 26 additions and 5 deletions

View file

@ -60,7 +60,7 @@ func (u *AuthService) Login(c *gin.Context, info dto.Login) (*dto.UserLoginInfo,
if err != nil {
return nil, constant.ErrAuth
}
if info.Password != pass && nameSetting.Value == info.Name {
if info.Password != pass || nameSetting.Value != info.Name {
return nil, constant.ErrAuth
}
mfa, err := settingRepo.Get(settingRepo.WithByKey("MFAStatus"))

View file

@ -107,7 +107,7 @@ var AddTableSetting = &gormigrate.Migration{
if err := tx.Create(&model.Setting{Key: "ExpirationDays", Value: "0"}).Error; err != nil {
return err
}
if err := tx.Create(&model.Setting{Key: "ComplexityVerification", Value: "disable"}).Error; err != nil {
if err := tx.Create(&model.Setting{Key: "ComplexityVerification", Value: "enable"}).Error; err != nil {
return err
}
if err := tx.Create(&model.Setting{Key: "MFAStatus", Value: "disable"}).Error; err != nil {

View file

@ -41,6 +41,19 @@ const checkName = (rule: any, value: any, callback: any) => {
}
};
const checkUserName = (rule: any, value: any, callback: any) => {
if (value === '' || typeof value === 'undefined' || value == null) {
callback(new Error(i18n.global.t('commons.rule.userName')));
} else {
const reg = /^[a-zA-Z\u4e00-\u9fa5]{1}[a-zA-Z0-9_\u4e00-\u9fa5]{5,30}$/;
if (!reg.test(value) && value !== '') {
callback(new Error(i18n.global.t('commons.rule.userName')));
} else {
callback();
}
}
};
const checkSimpleName = (rule: any, value: any, callback: any) => {
if (value === '' || typeof value === 'undefined' || value == null) {
callback(new Error(i18n.global.t('commons.rule.simpleName')));
@ -138,6 +151,7 @@ interface CommonRule {
requiredSelect: FormItemRule;
requiredSelectBusiness: FormItemRule;
name: FormItemRule;
userName: FormItemRule;
simpleName: FormItemRule;
dbName: FormItemRule;
imageName: FormItemRule;
@ -196,6 +210,11 @@ export const Rules: CommonRule = {
validator: checkName,
trigger: 'blur',
},
userName: {
required: true,
validator: checkUserName,
trigger: 'blur',
},
linuxName: {
required: true,
validator: checkLinuxName,

View file

@ -120,6 +120,7 @@ export default {
requiredInput: 'Please enter the required fields',
requiredSelect: 'Please select the required fields',
commonName: 'Support English, Chinese, numbers, .-, and _ length 1-30',
userName: 'Support English, Chinese, numbers and _ length 5-30',
simpleName: 'Support English, numbers and _ length 1-30',
dbName: 'Support English, Chinese, numbers, .-, and _ length 1-16',
imageName: 'Support English, Chinese, numbers, :.-_, length 1-30',

View file

@ -125,6 +125,7 @@ export default {
requiredInput: '请填写必填项',
requiredSelect: '请选择必选项',
commonName: '支持英文中文数字.-和_,长度1-30',
userName: '支持英文中文数字和_,长度5-30',
simpleName: '支持英文数字_,长度1-30',
dbName: '支持英文中文数字.-_,长度1-16',
imageName: '支持英文中文数字:.-_,长度1-30',

View file

@ -190,8 +190,8 @@ const registerForm = reactive({
});
const registerRules = reactive({
name: [Rules.requiredInput],
password: [Rules.requiredInput],
rePassword: [Rules.requiredInput, { validator: checkPassword, trigger: 'blur' }],
password: [Rules.requiredInput, Rules.password],
rePassword: [Rules.requiredInput, Rules.password, { validator: checkPassword, trigger: 'blur' }],
});
const loginButtonFocused = ref();

View file

@ -6,7 +6,7 @@
<el-row>
<el-col :span="1"><br /></el-col>
<el-col :span="10">
<el-form-item :label="$t('setting.user')" :rules="Rules.requiredInput" prop="userName">
<el-form-item :label="$t('setting.user')" :rules="Rules.userName" prop="userName">
<el-input clearable v-model="form.userName">
<template #append>
<el-button