package cn.lihu.jh.framework.datapermission.config; import cn.lihu.jh.framework.datapermission.core.rule.dept.DeptDataPermissionRule; import cn.lihu.jh.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; import cn.lihu.jh.framework.security.core.LoginUser; import cn.lihu.jh.module.system.api.permission.PermissionApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Bean; import java.util.List; /** * 基于部门的数据权限 AutoConfiguration * * @author 芋道源码 */ @AutoConfiguration @ConditionalOnClass(LoginUser.class) @ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class}) public class JhDeptDataPermissionAutoConfiguration { @Bean public DeptDataPermissionRule deptDataPermissionRule(PermissionApi permissionApi, List customizers) { // 创建 DeptDataPermissionRule 对象 DeptDataPermissionRule rule = new DeptDataPermissionRule(permissionApi); // 补全表配置 customizers.forEach(customizer -> customizer.customize(rule)); return rule; } }