数据权限表示用户能访问哪些数据,不能访问哪些数据。通过实现com.ruisitech.ext.service.DataControlInterface 接口来控制数据权限。
通过用户所属组织机构控制权限示例:
/**
* 通过实现DataControlInterface 接口实现数据权限控制。
* 此接口在系统每次查询中都会调用,接口返回数据权限过滤的SQL片段。
* @author zys
* @date 2015-2-20
*/
public class DataControlImpl implements DataControlInterface {
/**
* @param u 会话中保存的用户信息
* @param master 此次查询中使用的主表的名称
*/
public String process(User u, String master) {
int lvl = u.getDeptLvl();
if(lvl == 1){
return " and " + "lv3_id = '"+u.getDeptId()+"' " ;
}else if(lvl == 2){
return " and " + "lv2_id = '"+u.getDeptId()+"' " ;
}else if(lvl == 3){
return " and " + "dept_id = '"+u.getDeptId()+"' " ;
}
return "";
}
}
然后通过Springboot注入bean:
package com.ruisitech.bi.config;
import com.ruisitech.ext.service.DataControlImpl;
import com.ruisitech.ext.service.DataControlInterface;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DataControlConfig {
@Bean
public DataControlInterface dataControl(){
DataControlInterface dc = new DataControlImpl();
return dc;
}
}