From 47cd9ecc0eff38ffe6b3b794b2bf197e958f4403 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 14 五月 2025 15:50:57 +0800 Subject: [PATCH] bug:学员有状态不能修改问题 --- src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 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..938ffee 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 @@ -2,9 +2,11 @@ import com.mindskip.xzs.context.WebContext; +import com.mindskip.xzs.domain.Department; import com.mindskip.xzs.domain.enums.DeptAdminEnum; import com.mindskip.xzs.domain.enums.RoleEnum; import com.mindskip.xzs.domain.enums.UserStatusEnum; +import com.mindskip.xzs.domain.vo.CascaderDataVO; import com.mindskip.xzs.repository.DepartmentMapper; import com.mindskip.xzs.service.AuthenticationService; import com.mindskip.xzs.service.UserService; @@ -19,9 +21,12 @@ 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; +import java.util.Objects; +import java.util.stream.Collectors; /** @@ -65,9 +70,23 @@ grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.DEPT_ADMIN.getRoleName())); } grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.fromCode(user.getRole()).getRoleName())); - // 鑾峰彇璇ョ敤鎴风鐞嗛儴闂� - List<Integer> deptAdminIds = userService.getDeptAdminIds(user.getId()); - MyUser authUser = new MyUser(user.getUserName(), user.getPassword(), grantedAuthorities, user.getRole(), deptAdminIds); + // 鑾峰彇璇ョ敤鎴风鐞嗛儴闂ㄥ強鍏朵笅绾eptAdminIds + List<Department> deptList = userService.getDeptAdminIdAndInfo(user.getId()); + List<Integer> deptIds = deptList.stream().map(dept -> dept.getId()).collect(Collectors.toList()); + if (! CollectionUtils.isEmpty(deptIds)) { + deptIds = departmentMapper.getChilds(deptIds); // 鏌ヨ瀛愰儴闂� + // 濡傛灉璇ラ儴闂ㄨ繕琚祴浜堜簡绠$悊涓夌骇鍗曚綅鐨勭殑鏉冮檺锛屽垯鏌ュ嚭鏉� + if (deptList.stream().anyMatch(dept -> Objects.nonNull(dept.getSpecial()) && dept.getSpecial())) { + List<CascaderDataVO> levelDeptList = departmentMapper.getLevelDeptList(3); + List<Integer> level3DeptIds = levelDeptList.stream().map(CascaderDataVO::getValue).collect(Collectors.toList()); + deptIds.addAll(level3DeptIds); + } + } + else if (CollectionUtils.isEmpty(deptIds)) { + // 濡傛灉鏄櫘閫氬鍛橈紝鏌ュ嚭鎵�鍦ㄩ儴闂� + deptIds = userService.getDeptIds(user.getId()); + } + MyUser authUser = new MyUser(user.getUserName(), user.getPassword(), grantedAuthorities, user.getRole(), deptIds); return new UsernamePasswordAuthenticationToken(authUser, authUser.getPassword(), authUser.getAuthorities()); } -- Gitblit v1.8.0