|
@@ -81,15 +81,17 @@ public class CubeDataBrowserService {
|
|
|
@Autowired
|
|
|
private DialectContext dialectContext;
|
|
|
//${系统变量}
|
|
|
- static private final String sql = "where ( ${permissionCubeColumnId1} = ${publicPermission} or ( ${userIdsCubeColumnId} like '%${userId}${userIdDelimiter}%' and ${permissionCubeColumnId2} = ${privatePermission} ) )";
|
|
|
+ static private final String sql = "where ( ${permissionCubeColumnId1} = ${publicPermission} or ( ${creatorUserCubeColumnId} = ${userId1} ) or ( ${userIdsCubeColumnId} like '%${userId2}${userIdDelimiter}%' and ${permissionCubeColumnId2} = ${privatePermission} ) )";
|
|
|
//${系统变量}
|
|
|
static private final String permissionCubeColumnId1 = "\\$\\{permissionCubeColumnId1\\}";
|
|
|
static private final String publicPermission = "\\$\\{publicPermission\\}";
|
|
|
static private final String permissionCubeColumnId2 = "\\$\\{permissionCubeColumnId2\\}";
|
|
|
static private final String privatePermission = "\\$\\{privatePermission\\}";
|
|
|
static private final String userIdsCubeColumnId = "\\$\\{userIdsCubeColumnId\\}";
|
|
|
- static private final String userId = "\\$\\{userId\\}";
|
|
|
+ static private final String userId1 = "\\$\\{userId\\}";
|
|
|
+ static private final String userId2 = "\\$\\{userId\\}";
|
|
|
static private final String userIdDelimiter = "\\$\\{userIdDelimiter\\}";
|
|
|
+ static private final String creatorUserCubeColumnId = "\\$\\{creatorUserCubeColumnId\\}";
|
|
|
public static void main(String[] args) {
|
|
|
// 创建一个Pattern对象,并编译一个正则表达式,用于匹配方括号内的内容
|
|
|
Pattern pattern = Pattern.compile(permissionCubeColumnId1);
|
|
@@ -244,9 +246,13 @@ public class CubeDataBrowserService {
|
|
|
}
|
|
|
if (rowPermissionParam.getUserIdsCubeColumnId().equals(column.getId())) {
|
|
|
replaceSql(userIdsCubeColumnId,queryColumnName, rowPermissionSql);
|
|
|
- replaceSql(userId,AuthUtil.getUserId()+"", rowPermissionSql);
|
|
|
+ replaceSql(userId2,AuthUtil.getUserId()+"", rowPermissionSql);
|
|
|
replaceSql(userIdDelimiter,rowPermissionParam.getUserIdDelimiter(), rowPermissionSql);
|
|
|
}
|
|
|
+ if (rowPermissionParam.getCreatorUserCubeColumnId().equals(column.getId())) {
|
|
|
+ replaceSql(creatorUserCubeColumnId,queryColumnName, rowPermissionSql);
|
|
|
+ replaceSql(userId1,AuthUtil.getUserId()+"", rowPermissionSql);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private static void replaceSql(String rex, String value, String rowPermissionSql) {
|