2021与蓝度共同重构项目,服务端
liuhaonan
2022-01-18 9f4c4e77bd7936645d174f21a6abf8951b533e8d
ximon-admin/src/main/java/com/sandu/ximon/admin/security/PermissionConfig.java
@@ -1,5 +1,7 @@
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;
@@ -12,14 +14,22 @@
 * @date 2021/8/27 18:28
 * 权限控制
 */
@Service(value = "p")
@Service(value = "el")
public class PermissionConfig {
//    public Boolean check(String... permissions) {
//
//        // 获取当前用户的所有权限
//        List<String> elPermissions = SecurityUtils.getUserDetails().getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
//        // 判断当前用户的所有权限是否包含接口上定义的权限
//        return elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains);
//    }
    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);
    }
}