2021与蓝度共同重构项目,服务端
liuhaonan
2022-10-24 c5ef81f257e0176cdcfce034779a15f544d6694c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.sandu.ximon.admin.security;
 
import com.sandu.common.security.LoginUserInfo;
import com.sandu.ximon.dao.enums.AdministratorEnums;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Service;
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * @author chenjiantian
 * @date 2021/8/27 18:28
 * 权限控制
 */
@Service(value = "el")
public class PermissionConfig {
 
    public Boolean check(String... permissions) {
        LoginUserInfo loginUserInfo = SecurityUtils.getUserDetails();
        if (loginUserInfo == null || loginUserInfo.getPermission() == null) {
            return false;
        }
//        // 客户没有权限管理
//        if(AdministratorEnums.CUSTOMER.getCode().equals(loginUserInfo.getAdministratorType())){
//            return true;
//        }
        String[] split = loginUserInfo.getPermission().split(",");
        // 获取当前用户的所有权限
        List<String> elPermissions = Arrays.stream(split).collect(Collectors.toList());
        // 判断当前用户的所有权限是否包含接口上定义的权限
        return elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains);
    }
}