22
33import com .codingapi .springboot .authorization .filter .DataAuthorizationFilter ;
44import com .codingapi .springboot .authorization .handler .Condition ;
5+ import com .codingapi .springboot .authorization .interceptor .SQLInterceptState ;
56import lombok .Getter ;
7+ import org .springframework .util .StringUtils ;
68
79import java .util .ArrayList ;
810import java .util .List ;
911
1012/**
11- * 数据权限上下文
13+ * 数据权限上下文
1214 */
1315public class DataAuthorizationContext {
1416
@@ -25,19 +27,27 @@ public void addDataAuthorizationFilter(DataAuthorizationFilter filter) {
2527 this .filters .add (filter );
2628 }
2729
28- public <T > T columnAuthorization (String tableName , String columnName , T value ) {
29- for (DataAuthorizationFilter filter : filters ) {
30- if (filter .supportColumnAuthorization (tableName , columnName , value )) {
31- return filter .columnAuthorization (tableName , columnName , value );
30+ public void clearDataAuthorizationFilters (){
31+ this .filters .clear ();
32+ }
33+
34+ public <T > T columnAuthorization (SQLInterceptState interceptState , String tableName , String columnName , T value ) {
35+ if (interceptState != null && interceptState .hasIntercept () && StringUtils .hasText (tableName )) {
36+ for (DataAuthorizationFilter filter : filters ) {
37+ if (filter .supportColumnAuthorization (tableName , columnName , value )) {
38+ return filter .columnAuthorization (tableName , columnName , value );
39+ }
3240 }
3341 }
3442 return value ;
3543 }
3644
3745 public Condition rowAuthorization (String tableName , String tableAlias ) {
38- for (DataAuthorizationFilter filter : filters ) {
39- if (filter .supportRowAuthorization (tableName , tableAlias )) {
40- return filter .rowAuthorization (tableName , tableAlias );
46+ if (StringUtils .hasText (tableName ) && StringUtils .hasText (tableAlias )) {
47+ for (DataAuthorizationFilter filter : filters ) {
48+ if (filter .supportRowAuthorization (tableName , tableAlias )) {
49+ return filter .rowAuthorization (tableName , tableAlias );
50+ }
4151 }
4252 }
4353 return null ;
0 commit comments