diff --git a/src/main/java/com/jhinno/sdk/openapi/api/organization/AddUpdateUserInfo.java b/src/main/java/com/jhinno/sdk/openapi/api/organization/AddUpdateUserInfo.java new file mode 100644 index 0000000..036da03 --- /dev/null +++ b/src/main/java/com/jhinno/sdk/openapi/api/organization/AddUpdateUserInfo.java @@ -0,0 +1,91 @@ +package com.jhinno.sdk.openapi.api.organization; + +import lombok.Data; + +import java.util.Date; + +/** + * 添加用户 + * + * @author yanlongqi + * @date 2024/2/19 10:14 + */ +@Data +public class AddUpdateUserInfo { + + /** + * 用户名(必填) + */ + private String userName; + + /** + * 用户中文名(必填) + */ + private String userNameCn; + + /** + * 用户密码(必填,需要修改) + */ + private String userPassword; + + /** + * 用户身份证(非必填) + */ + private String userCard; + + /** + * 部门名称(必填) + */ + private String depName; + + /** + * 部门中文名称(没必要) + */ + private String depNameCn; + + /** + * 用户说明(非必填) + */ + private String userNote; + + /** + * 用户电话(非必填) + */ + private String userTel; + + /** + * 用户邮箱(非必填) + */ + private String userMail; + + /** + * 用户密级配置(非必填) + */ + private String userConf; + + /** + * 用户密级配置中文名(没必要) + */ + private String userConfCn; + + /** + * 用户角色(非必填) + */ + private String userRole; + + /** + * 用户角色中文名(没必要) + */ + private String userRoleCn; + + /** + * 账号有效时间(非必填,为空这表示永不失效) + */ + private Date userExpireTime; + + + /** + * 属性(不知道有什么用) + */ + private String attribute; +} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/organization/JHUserApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/organization/JHUserApiExecution.java index 097135d..382c9ea 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/organization/JHUserApiExecution.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/organization/JHUserApiExecution.java @@ -12,6 +12,8 @@ import java.util.Map; /** * 用户相关接口执行器 + *
+ * 注:要调用以下接口,传入的username必须有user_manager的权限 * * @author yanlongqi * @date 2024/2/6 17:37 @@ -51,4 +53,102 @@ public class JHUserApiExecution extends JHApiExecution { return get(path, username, new TypeReference>>() { }); } + + /** + * 添加用户 + * + * @param username 用户名 + * @param userInfo 用户信息 + */ + public void addUser(String username, AddUpdateUserInfo userInfo) { + post(UserPathConstant.USERS_PATH, username, userInfo); + } + + /** + * 修改用户信息 + * + * @param username 用户名 + * @param userInfo 用户信息 + */ + public void updateUser(String username, AddUpdateUserInfo userInfo) { + String path = UserPathConstant.USERS_USERNAME_PATH.replace("{username}", userInfo.getUserName()); + put(path, username, userInfo); + } + + + /** + * 修改或重置用户密码 + * + * + * 参数怎么传,还需进一步确认,此处需要增加三个重构,方便开发者调用 + * + * @param username 用户名 + * @param updatePasswordUsername 被修改的用户名 + * @param oldPassword 旧密码 + * @param password 新密码 + * @param type 类型,(非必填,取值见{@link UpdateUserPasswordType}) + */ + public void updateUserPassword(String username, String updatePasswordUsername, String oldPassword, String password, String type) { + String path = UserPathConstant.USERS_RESET_PASSWORD_PATH.replace("{username}", updatePasswordUsername); + Map params = new HashMap<>(4); + if (StringUtils.isNotBlank(oldPassword)) { + params.put("oldPassword", oldPassword); + } + if (StringUtils.isNotBlank("type")) { + params.put("type", type); + } + params.put("password", password); + put(path, username, params); + } + + + /** + * 修改用户的密码 + * + * @param username 用户名 + * @param updatePasswordUsername 被修改的用户名 + * @param oldPassword 旧密码 + * @param password 新密码 + */ + public void updateUserPassword(String username, String updatePasswordUsername, String oldPassword, String password) { + updateUserPassword(username, updatePasswordUsername, oldPassword, password, null); + } + + /** + * 重置用户密码后强制用户修改密码 + * + * @param username 用户名 + * @param updatePasswordUsername 被修改的用户名 + * @param password 新的用户密码 + */ + public void resetForceUpdatePassword(String username, String updatePasswordUsername, String password) { + updateUserPassword(username, updatePasswordUsername, null, password, UpdateUserPasswordType.FORCE_UPDATE_PASSWORD_TYPE); + } + + /** + * 重置用户名 + * + * @param username 用户名 + * @param updatePasswordUsername 被修改的用户密码 + * @param password 新的用户密码 + */ + public void resetPassword(String username, String updatePasswordUsername, String password) { + updateUserPassword(username, updatePasswordUsername, null, password, UpdateUserPasswordType.RESET_UPDATE_PASSWORD_TYPE); + } + + + /** + * 删除用户 + * + * @param username 用户名 + * @param deleteUsername 被删除的用户名 + */ + public void deleteUser(String username, String deleteUsername) { + delete(UserPathConstant.USERS_USERNAME_PATH.replace("{username}", deleteUsername), username); + } + } diff --git a/src/main/java/com/jhinno/sdk/openapi/api/organization/UpdateUserPasswordType.java b/src/main/java/com/jhinno/sdk/openapi/api/organization/UpdateUserPasswordType.java new file mode 100644 index 0000000..4457cca --- /dev/null +++ b/src/main/java/com/jhinno/sdk/openapi/api/organization/UpdateUserPasswordType.java @@ -0,0 +1,20 @@ +package com.jhinno.sdk.openapi.api.organization; + +/** + * 密码操作的类型 + * + * @author yanlongqi + * @date 2024/2/19 10:54 + */ +public class UpdateUserPasswordType { + + /** + * 重置密码 + */ + protected static final String RESET_UPDATE_PASSWORD_TYPE = "reset"; + /** + * 首次登录强制修改密码 + */ + protected static final String FORCE_UPDATE_PASSWORD_TYPE = "force"; + +} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/organization/UserPathConstant.java b/src/main/java/com/jhinno/sdk/openapi/api/organization/UserPathConstant.java index 960a9d0..ce3fbe0 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/organization/UserPathConstant.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/organization/UserPathConstant.java @@ -21,9 +21,8 @@ public class UserPathConstant { /** - * 充值用户密码 + * 用户密码操作 */ public static final String USERS_RESET_PASSWORD_PATH = "/ws/api/users/{username}/password/password_reset"; - }