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);
|
}
|
}
|