From 13a68df58b3f937db5ba6437c814bafdcd8d37f8 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 27 五月 2024 16:09:41 +0800
Subject: [PATCH] 登录时如果不是部门管理员则deptIds填充为用户所在部门
---
src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java | 5 +++++
src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java | 5 +++++
src/main/java/com/mindskip/xzs/repository/UserMapper.java | 2 ++
src/main/java/com/mindskip/xzs/service/UserService.java | 8 ++++++++
src/main/resources/mapper/UserMapper.xml | 4 ++++
5 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java b/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java
index c6c39f9..d11b5d3 100644
--- a/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java
+++ b/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java
@@ -19,6 +19,7 @@
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@@ -67,6 +68,10 @@
grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.fromCode(user.getRole()).getRoleName()));
// 鑾峰彇璇ョ敤鎴风鐞嗛儴闂�
List<Integer> deptAdminIds = userService.getDeptAdminIds(user.getId());
+ if (CollectionUtils.isEmpty(deptAdminIds)) {
+ // 濡傛灉鏄櫘閫氬鍛橈紝鏌ュ嚭鎵�鍦ㄩ儴闂�
+ deptAdminIds = userService.getDeptIds(user.getId());
+ }
MyUser authUser = new MyUser(user.getUserName(), user.getPassword(), grantedAuthorities, user.getRole(), deptAdminIds);
return new UsernamePasswordAuthenticationToken(authUser, authUser.getPassword(), authUser.getAuthorities());
}
diff --git a/src/main/java/com/mindskip/xzs/repository/UserMapper.java b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
index a8ef3a0..2bb45b8 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -172,4 +172,6 @@
List<Department> getDeptAdmins(Integer id);
User getUserByExamByTemplateId(ExamPaper examPaper);
+
+ List<Integer> getDeptIds(@Param("userId") Integer userId);
}
diff --git a/src/main/java/com/mindskip/xzs/service/UserService.java b/src/main/java/com/mindskip/xzs/service/UserService.java
index 7c77c1a..eb652a4 100644
--- a/src/main/java/com/mindskip/xzs/service/UserService.java
+++ b/src/main/java/com/mindskip/xzs/service/UserService.java
@@ -144,4 +144,12 @@
List<Department> getDeptAdmins(Integer id);
User getUserByExamByTemplateId(ExamPaper examPaper);
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鎵�鍦ㄩ儴闂�
+ *
+ * @param id
+ * @return
+ */
+ List<Integer> getDeptIds(Integer id);
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
index 86dfc09..92a8b58 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -199,4 +199,9 @@
public User getUserByExamByTemplateId(ExamPaper examPaper) {
return userMapper.getUserByExamByTemplateId(examPaper);
}
+
+ @Override
+ public List<Integer> getDeptIds(Integer userId) {
+ return userMapper.getDeptIds(userId);
+ }
}
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 4cdbd6d..1c55b8d 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -565,4 +565,8 @@
]]>
</select>
+ <select id="getDeptIds" resultType="integer">
+ SELECT department_id FROM t_user_department WHERE user_id = #{userId} AND dept_admin != 1
+ </select>
+
</mapper>
--
Gitblit v1.8.0