新用户首次强制修改密码
This commit is contained in:
1 parent
160584d439
commit
d60ce3d8ef
2 files changed
+43
-10
No files matched your search
+32
@@ -0,0 +1,32 @@
|
||||
package com.bsd.pjcloud.admin.api.constant;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 用户过期状态
|
||||
*
|
||||
* @author zjf
|
||||
* @date 2023/11/14
|
||||
*/
|
||||
public enum UserExpireEnum {
|
||||
|
||||
/**
|
||||
* 正常
|
||||
*/
|
||||
NORMAL("0", "未过期"),
|
||||
/**
|
||||
* 锁定
|
||||
*/
|
||||
EXPIRE("9", "已过期");
|
||||
|
||||
@Getter
|
||||
private final String code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
UserExpireEnum(String code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
}
|
||||
+11
-10
@@ -34,6 +34,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.admin.api.constant.UserExpireEnum;
|
||||
import com.bsd.pjcloud.admin.api.constant.UserStaffingTypeEnum;
|
||||
import com.bsd.pjcloud.admin.api.constant.UserStateEnum;
|
||||
import com.bsd.pjcloud.admin.api.dto.ForgotPasswordDTO;
|
||||
@@ -191,6 +192,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
sysUser.setUpdateBy(userDto.getUsername());
|
||||
sysUser.setPassword(ENCODER.encode(userDto.getPassword()));
|
||||
sysUser.setPasswordModifyTime(LocalDateTime.now());
|
||||
sysUser.setPasswordExpireFlag(UserExpireEnum.EXPIRE.getCode());
|
||||
baseMapper.insert(sysUser);
|
||||
// 保存用户岗位信息
|
||||
Optional.ofNullable(userDto.getPost()).ifPresent(posts -> {
|
||||
@@ -413,6 +415,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
|
||||
if (StrUtil.isNotBlank(userDto.getPassword())) {
|
||||
sysUser.setPassword(ENCODER.encode(userDto.getPassword()));
|
||||
sysUser.setPasswordModifyTime(LocalDateTime.now());
|
||||
sysUser.setPasswordExpireFlag(UserExpireEnum.EXPIRE.getCode());
|
||||
}
|
||||
|
||||
// 判断用户username是否重复
|
||||
@@ -811,6 +815,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
sysUser.setProcessStatus(TaskCheckStatusEnum.RESULT.getCode());
|
||||
sysUser.setProcessTime(LocalDateTime.now());
|
||||
sysUser.setStaffingType(UserStaffingTypeEnum.NONE_STAFFING.getType());
|
||||
sysUser.setPasswordExpireFlag(UserExpireEnum.EXPIRE.getCode());
|
||||
// 把用户放到默认部门
|
||||
Long defaultDeptIdLong = null;
|
||||
String defaultDeptId = ParamResolver.getStr("DEFAULT_DEPT");
|
||||
@@ -1003,23 +1008,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
if (StrUtil.length(password) < 8 || StrUtil.length(password) > 20) {
|
||||
return "密码长度需为8-20位";
|
||||
}
|
||||
boolean hasUpper = false;
|
||||
boolean hasLower = false;
|
||||
boolean hasLetter = false;
|
||||
boolean hasDigit = false;
|
||||
boolean hasSpecial = false;
|
||||
for (char c : password.toCharArray()) {
|
||||
if (Character.isUpperCase(c)) {
|
||||
hasUpper = true;
|
||||
} else if (Character.isLowerCase(c)) {
|
||||
hasLower = true;
|
||||
if (Character.isLetter(c)) {
|
||||
hasLetter = true;
|
||||
} else if (Character.isDigit(c)) {
|
||||
hasDigit = true;
|
||||
} else {
|
||||
hasSpecial = true;
|
||||
return "密码只能包含字母和数字";
|
||||
}
|
||||
}
|
||||
if (!(hasUpper && hasLower && hasDigit && hasSpecial)) {
|
||||
return "密码需包含大写字母、小写字母、数字和特殊字符";
|
||||
if (!(hasLetter && hasDigit)) {
|
||||
return "密码需同时包含字母和数字";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user