From e3fcb702c99e17f59aa03618ca7ecbf4b9b258d2 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 30 Jun 2022 04:06:16 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=AF=86=E7=A0=81=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/auth/api/AuthApi.java | 4 ++++ .../io/dataease/auth/server/AuthServer.java | 11 ++++++++- .../dataease/ext/ExtSysUserAssistMapper.java | 17 +++++++++++++ .../dataease/service/sys/SysUserService.java | 24 ++++++++++++++----- .../main/resources/db/migration/V37__1.12.sql | 7 ++++++ 5 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 backend/src/main/java/io/dataease/ext/ExtSysUserAssistMapper.java diff --git a/backend/src/main/java/io/dataease/auth/api/AuthApi.java b/backend/src/main/java/io/dataease/auth/api/AuthApi.java index 51080b57b0..7430096544 100644 --- a/backend/src/main/java/io/dataease/auth/api/AuthApi.java +++ b/backend/src/main/java/io/dataease/auth/api/AuthApi.java @@ -30,6 +30,10 @@ public interface AuthApi { @PostMapping("/useInitPwd") Boolean useInitPwd(); + @ApiOperation("不再提示修改密码") + @PostMapping("/removeNoti") + void removeNoti(); + @ApiOperation("用户初始密码") @PostMapping("/defaultPwd") String defaultPwd(); diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java index eee98e7ca0..26c01c0ea5 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -158,7 +158,16 @@ public class AuthServer implements AuthApi { return false; } String md5 = CodingUtil.md5(DEFAULT_PWD); - return StringUtils.equals(AuthUtils.getUser().getPassword(), md5); + boolean isInitPwd = StringUtils.equals(AuthUtils.getUser().getPassword(), md5); + if (isInitPwd) { + return sysUserService.needPwdNoti(user.getUserId()); + } + return false; + } + + @Override + public void removeNoti() { + sysUserService.saveUserAssist(false); } @Override diff --git a/backend/src/main/java/io/dataease/ext/ExtSysUserAssistMapper.java b/backend/src/main/java/io/dataease/ext/ExtSysUserAssistMapper.java new file mode 100644 index 0000000000..ad6d042a0b --- /dev/null +++ b/backend/src/main/java/io/dataease/ext/ExtSysUserAssistMapper.java @@ -0,0 +1,17 @@ +package io.dataease.ext; + +import io.dataease.plugins.common.base.domain.SysUserAssist; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +@Mapper +public interface ExtSysUserAssistMapper { + + @Insert("insert into sys_user_assist values(#{po.userId}, #{po.needFirstNoti})") + void save(@Param("po") SysUserAssist po); + + @Select("select * from sys_user_assist where user_id = #{userId}") + SysUserAssist query(@Param("userId") Long userId); +} diff --git a/backend/src/main/java/io/dataease/service/sys/SysUserService.java b/backend/src/main/java/io/dataease/service/sys/SysUserService.java index 5fc90e9ec8..6b0d6fe100 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysUserService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysUserService.java @@ -2,6 +2,7 @@ package io.dataease.service.sys; import io.dataease.auth.api.dto.CurrentUserDto; import io.dataease.auth.service.ExtAuthService; +import io.dataease.ext.ExtSysUserAssistMapper; import io.dataease.ext.ExtSysUserMapper; import io.dataease.ext.query.GridExample; import io.dataease.commons.constants.AuthConstants; @@ -16,10 +17,7 @@ import io.dataease.controller.sys.request.SysUserStateRequest; import io.dataease.controller.sys.response.SysUserGridResponse; import io.dataease.controller.sys.response.SysUserRole; import io.dataease.i18n.Translator; -import io.dataease.plugins.common.base.domain.SysUser; -import io.dataease.plugins.common.base.domain.SysUserExample; -import io.dataease.plugins.common.base.domain.SysUsersRolesExample; -import io.dataease.plugins.common.base.domain.SysUsersRolesKey; +import io.dataease.plugins.common.base.domain.*; import io.dataease.plugins.common.base.mapper.SysUserMapper; import io.dataease.plugins.common.base.mapper.SysUsersRolesMapper; import io.dataease.plugins.common.entity.XpackLdapUserEntity; @@ -28,7 +26,6 @@ import io.dataease.plugins.xpack.oidc.dto.SSOUserInfo; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; @@ -56,9 +53,12 @@ public class SysUserService { @Resource private ExtSysUserMapper extSysUserMapper; - @Autowired + @Resource private ExtAuthService extAuthService; + @Resource + private ExtSysUserAssistMapper extSysUserAssistMapper; + public List query(BaseGridRequest request) { @@ -435,5 +435,17 @@ public class SysUserService { } } + public boolean needPwdNoti(Long userId) { + SysUserAssist userAssist = extSysUserAssistMapper.query(userId); + return ObjectUtils.isEmpty(userAssist) || userAssist.getNeedFirstNoti(); + } + + public void saveUserAssist(Boolean noti) { + Long userId = AuthUtils.getUser().getUserId(); + SysUserAssist sysUserAssist = new SysUserAssist(); + sysUserAssist.setUserId(userId); + sysUserAssist.setNeedFirstNoti(noti); + extSysUserAssistMapper.save(sysUserAssist); + } } diff --git a/backend/src/main/resources/db/migration/V37__1.12.sql b/backend/src/main/resources/db/migration/V37__1.12.sql index 8e9084d26e..6d5cfe6a31 100644 --- a/backend/src/main/resources/db/migration/V37__1.12.sql +++ b/backend/src/main/resources/db/migration/V37__1.12.sql @@ -58,3 +58,10 @@ INSERT INTO `sys_auth` (`id`, `auth_source`, `auth_source_type`, `auth_target`, INSERT INTO `sys_auth_detail` (`id`, `auth_id`, `privilege_name`, `privilege_type`, `privilege_value`, `privilege_extend`, `remark`, `create_user`, `create_time`, `update_time`, `copy_from`, `copy_id`) VALUES ('be90dc66-f5c7-11ec-bbef-0242ac130004', 'be9028cb-f5c7-11ec-bbef-0242ac130004', 'i18n_auth_grant', 15, 1, 'grant', '基础权限-授权', 'auto', 1656299878000, NULL, NULL, NULL); INSERT INTO `sys_auth_detail` (`id`, `auth_id`, `privilege_name`, `privilege_type`, `privilege_value`, `privilege_extend`, `remark`, `create_user`, `create_time`, `update_time`, `copy_from`, `copy_id`) VALUES ('be90ddbc-f5c7-11ec-bbef-0242ac130004', 'be9028cb-f5c7-11ec-bbef-0242ac130004', 'i18n_auth_manage', 3, 1, 'manage', '基础权限-管理', 'auto', 1656299878000, NULL, NULL, NULL); INSERT INTO `sys_auth_detail` (`id`, `auth_id`, `privilege_name`, `privilege_type`, `privilege_value`, `privilege_extend`, `remark`, `create_user`, `create_time`, `update_time`, `copy_from`, `copy_id`) VALUES ('be911f44-f5c7-11ec-bbef-0242ac130004', 'be9028cb-f5c7-11ec-bbef-0242ac130004', 'i18n_auth_use', 1, 1, 'use', '基础权限-使用', 'auto', 1656299878000, NULL, NULL, NULL); + +DROP TABLE IF EXISTS `sys_user_assist`; +CREATE TABLE `sys_user_assist` ( + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `need_first_noti` bit(1) DEFAULT NULL COMMENT '是否需要首登提示', + PRIMARY KEY (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;