xiangpei
2024-07-09 53dea0ef5fc8b035397b73b10f7a819ebf381b1c
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;
@@ -65,8 +66,15 @@
            grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.DEPT_ADMIN.getRoleName()));
        }
        grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.fromCode(user.getRole()).getRoleName()));
        // 获取该用户管理部门
        // 获取该用户管理部门及其下级
        List<Integer> deptAdminIds = userService.getDeptAdminIds(user.getId());
        if (! CollectionUtils.isEmpty(deptAdminIds)) {
            deptAdminIds = departmentMapper.getChilds(deptAdminIds); // 查询子部门
        }
        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());
    }