workcode 仅针对 system_users 表
This commit is contained in:
@@ -96,6 +96,7 @@ public class DeptDataPermissionRule implements DataPermissionRule {
|
|||||||
/**
|
/**
|
||||||
* 基于用户的表字段配置
|
* 基于用户的表字段配置
|
||||||
* 一般情况下,每个表的部门编号字段是 dept_id,通过该配置自定义。
|
* 一般情况下,每个表的部门编号字段是 dept_id,通过该配置自定义。
|
||||||
|
* key:表名
|
||||||
* value:字段名
|
* value:字段名
|
||||||
*/
|
*/
|
||||||
private final Map<String, String> userColumns = new HashMap<>();
|
private final Map<String, String> userColumns = new HashMap<>();
|
||||||
@@ -261,20 +262,16 @@ public class DeptDataPermissionRule implements DataPermissionRule {
|
|||||||
if (Boolean.FALSE.equals(self)) {
|
if (Boolean.FALSE.equals(self)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String userColumnsKey = tableName;
|
String columnName = userColumns.get(tableName);
|
||||||
if (StrUtil.isNotBlank(workCode)) {
|
|
||||||
userColumnsKey = userColumnsKey + "_work_code";
|
|
||||||
}
|
|
||||||
String columnName = userColumns.get(userColumnsKey);
|
|
||||||
if (StrUtil.isEmpty(columnName)) {
|
if (StrUtil.isEmpty(columnName)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 拼接条件
|
// 拼接条件
|
||||||
if (StrUtil.isBlank(workCode)) {
|
if (StrUtil.isNotBlank(workCode) && "system_users".equals(tableName)) {
|
||||||
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new LongValue(userId));
|
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, "workcode"), new StringValue(workCode));
|
||||||
} else {
|
} else {
|
||||||
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new StringValue(workCode));
|
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new LongValue(userId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ public class DataPermissionConfiguration {
|
|||||||
rule.addDeptColumn(DeptDO.class, "id");
|
rule.addDeptColumn(DeptDO.class, "id");
|
||||||
// user
|
// user
|
||||||
rule.addUserColumn(AdminUserDO.class, "id");
|
rule.addUserColumn(AdminUserDO.class, "id");
|
||||||
rule.addUserColumn("system_users_work_code", "workcode");
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user