1. 清理 iwork 无用的接口。
2. 整合 iwork 用户的密码管理策略。
This commit is contained in:
@@ -61,6 +61,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode USER_IMPORT_INIT_PASSWORD = new ErrorCode(1_002_003_009, "初始密码不能为空");
|
||||
ErrorCode USER_MOBILE_NOT_EXISTS = new ErrorCode(1_002_003_010, "该手机号尚未注册");
|
||||
ErrorCode USER_REGISTER_DISABLED = new ErrorCode(1_002_003_011, "注册功能已关闭");
|
||||
ErrorCode USER_PASSWORD_MODIFY_FORBIDDEN = new ErrorCode(1_002_003_012, "该用户来源不支持修改密码");
|
||||
|
||||
// ========== 部门模块 1-002-004-000 ==========
|
||||
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "当前上级部门已存在同名子部门");
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.zt.plat.module.system.enums.user;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 密码处理策略,用于区分本地账户与外部同步账户的密码存储/校验方式。
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum PasswordStrategyEnum {
|
||||
|
||||
/**
|
||||
* 本地创建或注册用户,使用 Spring Security {@code PasswordEncoder}(BCrypt)。
|
||||
*/
|
||||
LOCAL_BCRYPT("LOCAL_BCRYPT"),
|
||||
/**
|
||||
* iWork 同步的 MD5 密文,直接按大写 MD5 存储及校验。
|
||||
*/
|
||||
IWORK_MD5("IWORK_MD5");
|
||||
|
||||
private final String label;
|
||||
|
||||
}
|
||||
@@ -3,6 +3,9 @@ package com.zt.plat.module.system.enums.user;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 用户来源枚举
|
||||
*
|
||||
@@ -12,9 +15,9 @@ import lombok.Getter;
|
||||
@Getter
|
||||
public enum UserSourceEnum {
|
||||
|
||||
EXTERNAL(1, "外部用户"), // 系统创建、注册等方式产生的用户
|
||||
SYNC(2, "同步用户"), // 通过 UserSyncService 同步的用户
|
||||
IWORK(3, "iWork 用户"); // 通过 iWork 全量/单条同步产生的用户
|
||||
EXTERNAL(1, "外部用户", PasswordStrategyEnum.LOCAL_BCRYPT), // 系统创建、注册等方式产生的用户
|
||||
SYNC(2, "同步用户", PasswordStrategyEnum.LOCAL_BCRYPT), // 通过 UserSyncService 同步的用户
|
||||
IWORK(3, "iWork 用户", PasswordStrategyEnum.IWORK_MD5); // 通过 iWork 全量/单条同步产生的用户
|
||||
|
||||
/**
|
||||
* 类型
|
||||
@@ -24,5 +27,28 @@ public enum UserSourceEnum {
|
||||
* 名字
|
||||
*/
|
||||
private final String name;
|
||||
/**
|
||||
* 默认密码策略
|
||||
*/
|
||||
private final PasswordStrategyEnum passwordStrategy;
|
||||
|
||||
public static UserSourceEnum of(Integer source) {
|
||||
if (source == null) {
|
||||
return null;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(item -> Objects.equals(item.source, source))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
public static PasswordStrategyEnum resolvePasswordStrategy(Integer source) {
|
||||
UserSourceEnum matched = of(source);
|
||||
return matched == null ? PasswordStrategyEnum.LOCAL_BCRYPT : matched.getPasswordStrategy();
|
||||
}
|
||||
|
||||
public boolean isExternal() {
|
||||
return this == EXTERNAL;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user