mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
系统基础模块:1、用户密码复杂度校验、长度(6->8),只有小写->必须有大小写;2、删除用户采用物理删除,适配用户表的username唯一索引;
This commit is contained in:
+3
-6
@@ -46,18 +46,15 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode USER_IS_DISABLE = new ErrorCode(1_002_003_006, "名字为【{}】的用户已被禁用");
|
ErrorCode USER_IS_DISABLE = new ErrorCode(1_002_003_006, "名字为【{}】的用户已被禁用");
|
||||||
ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过组织最大组织配额({})!");
|
ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过组织最大组织配额({})!");
|
||||||
ErrorCode USER_ME_ERROR = new ErrorCode(1_002_003_009, "不允许操作用户自身");
|
ErrorCode USER_ME_ERROR = new ErrorCode(1_002_003_009, "不允许操作用户自身");
|
||||||
|
ErrorCode THE_PASSWORD_LENGTH_MUST_BE_AT_LEAST_8_CHARACTERS = new ErrorCode(1_002_003_010, "密码长度必须至少为8个字符");
|
||||||
ErrorCode THE_PASSWORD_LENGTH_MUST_BE_AT_LEAST_6_CHARACTERS = new ErrorCode(1_002_003_010, "密码长度必须至少为6个字符");
|
ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_LOWER_LETTER = new ErrorCode(1_002_003_011, "密码必须包含至少一个小写字母");
|
||||||
|
|
||||||
ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_LETTER = new ErrorCode(1_002_003_011, "密码必须包含至少一个字母");
|
|
||||||
|
|
||||||
ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_NUMBER = new ErrorCode(1_002_003_012, "密码必须包含至少一个数字");
|
ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_NUMBER = new ErrorCode(1_002_003_012, "密码必须包含至少一个数字");
|
||||||
|
|
||||||
ErrorCode PASSWORDS_CAN_ONLY_CONTAIN_LETTERS_AND_NUMBERS = new ErrorCode(1_002_003_013, "密码只能包含字母和数字");
|
ErrorCode PASSWORDS_CAN_ONLY_CONTAIN_LETTERS_AND_NUMBERS = new ErrorCode(1_002_003_013, "密码只能包含字母和数字");
|
||||||
ErrorCode INSUFFICIENT_PERMISSIONS = new ErrorCode(1_002_003_014, "当前用户权限不足,无法修改开料状态");
|
ErrorCode INSUFFICIENT_PERMISSIONS = new ErrorCode(1_002_003_014, "当前用户权限不足,无法修改开料状态");
|
||||||
ErrorCode USERNAME_MULTIPLE_ERROR = new ErrorCode(1_002_003_015,"存在【{}】重复用户,请联系系统管理员");
|
ErrorCode USERNAME_MULTIPLE_ERROR = new ErrorCode(1_002_003_015,"存在【{}】重复用户,请联系系统管理员");
|
||||||
ErrorCode USER_OPERATE_SELF_STATUS_ERROR = new ErrorCode(1_002_003_016, "不允许操作用户自身状态");
|
ErrorCode USER_OPERATE_SELF_STATUS_ERROR = new ErrorCode(1_002_003_016, "不允许操作用户自身状态");
|
||||||
|
ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_UPPER_LETTER = new ErrorCode(1_002_003_017, "密码必须包含至少一个大写字母");
|
||||||
|
|
||||||
// ========== 部门模块 1-002-004-000 ==========
|
// ========== 部门模块 1-002-004-000 ==========
|
||||||
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");
|
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");
|
||||||
|
|||||||
+10
@@ -13,6 +13,7 @@ import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
|||||||
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
|
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
|
||||||
import com.cf.imes.module.system.controller.admin.user.vo.user.UserPageReqVO;
|
import com.cf.imes.module.system.controller.admin.user.vo.user.UserPageReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
|
import org.apache.ibatis.annotations.Delete;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
@@ -172,4 +173,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
|||||||
*/
|
*/
|
||||||
@Select("SELECT username FROM system_users WHERE id = #{id} FOR UPDATE")
|
@Select("SELECT username FROM system_users WHERE id = #{id} FOR UPDATE")
|
||||||
AdminUserDO selectByIdForUpdate(@Param("id") Long id);
|
AdminUserDO selectByIdForUpdate(@Param("id") Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id物理删除user
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return 改动数量
|
||||||
|
*/
|
||||||
|
@Delete("DELETE FROM system_users WHERE id = #{id}")
|
||||||
|
int physicalDeleteById(@Param("id") Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-12
@@ -114,8 +114,9 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
|
|
||||||
|
|
||||||
// 定义密码校验的正则表达式
|
// 定义密码校验的正则表达式
|
||||||
private static final String LENGTH_PATTERN = ".{6,}";
|
private static final String LENGTH_PATTERN = ".{8,}";
|
||||||
private static final String LETTER_PATTERN = ".*[A-Za-z].*";
|
private static final String UPPER_LETTER_PATTERN = ".*[A-Z].*";
|
||||||
|
private static final String LOWER_LETTER_PATTERN = ".*[a-z].*";
|
||||||
private static final String DIGIT_PATTERN = ".*\\d.*";
|
private static final String DIGIT_PATTERN = ".*\\d.*";
|
||||||
private static final String VALID_CHAR_PATTERN = "^[A-Za-z\\d]+$";
|
private static final String VALID_CHAR_PATTERN = "^[A-Za-z\\d]+$";
|
||||||
|
|
||||||
@@ -320,12 +321,14 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
checkCurrentWhenOperate(id);
|
checkCurrentWhenOperate(id);
|
||||||
// 校验用户存在
|
// 校验用户存在
|
||||||
validateUserExists(id);
|
validateUserExists(id);
|
||||||
// 删除用户
|
// 物理删除用户
|
||||||
userMapper.deleteById(id);
|
int deleteNum = userMapper.physicalDeleteById(id);
|
||||||
// 删除用户关联数据
|
if (deleteNum > 0) {
|
||||||
permissionService.processUserDeleted(id);
|
// 删除用户关联数据
|
||||||
// 删除用户岗位
|
permissionService.processUserDeleted(id);
|
||||||
userPostMapper.deleteByUserId(id);
|
// 删除用户岗位
|
||||||
|
userPostMapper.deleteByUserId(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -463,11 +466,15 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
|
|
||||||
// 检查密码长度
|
// 检查密码长度
|
||||||
if (!Pattern.matches(LENGTH_PATTERN, password)) {
|
if (!Pattern.matches(LENGTH_PATTERN, password)) {
|
||||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.THE_PASSWORD_LENGTH_MUST_BE_AT_LEAST_6_CHARACTERS);
|
throw ServiceExceptionUtil.exception(ErrorCodeConstants.THE_PASSWORD_LENGTH_MUST_BE_AT_LEAST_8_CHARACTERS);
|
||||||
}
|
}
|
||||||
// 检查是否包含字母
|
// 检查是否包含大写字母
|
||||||
if (!Pattern.matches(LETTER_PATTERN, password)) {
|
if (!Pattern.matches(UPPER_LETTER_PATTERN, password)) {
|
||||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_LETTER);
|
throw ServiceExceptionUtil.exception(ErrorCodeConstants.THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_UPPER_LETTER);
|
||||||
|
}
|
||||||
|
// 检查是否包含小写字母
|
||||||
|
if (!Pattern.matches(LOWER_LETTER_PATTERN, password)) {
|
||||||
|
throw ServiceExceptionUtil.exception(ErrorCodeConstants.THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_LOWER_LETTER);
|
||||||
}
|
}
|
||||||
// 检查是否包含数字
|
// 检查是否包含数字
|
||||||
if (!Pattern.matches(DIGIT_PATTERN, password)) {
|
if (!Pattern.matches(DIGIT_PATTERN, password)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user