2021与蓝度共同重构项目,服务端
Van333
2022-12-29 727a69f859060093e685582fa10e5de82dcc138a
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,13 +14,21 @@
 * @date 2021/8/27 18:28
 * 权限控制
 */
@Service(value = "p")
@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 = SecurityUtils.getUserDetails().getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
        List<String> elPermissions = Arrays.stream(split).collect(Collectors.toList());
        // 判断当前用户的所有权限是否包含接口上定义的权限
        return elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains);
    }