This commit is contained in:
2026-09-01 11:09:14 +08:00
191 changed files with 6486 additions and 403 deletions
@@ -41,10 +41,12 @@ class OverseasPhase4PermissionSqlContractTest {
assertThat(sql).contains(REQUIRED.toArray(String[]::new));
assertThat(sql).contains("'lastleg:pda:operate'");
assertPdaPickerGrant(sql);
assertThat(catalog).hasSize(53).noneMatch(code -> code.endsWith(":view"));
assertThat(catalog).hasSize(56).noneMatch(code -> code.endsWith(":view"));
assertThat(sql).contains("permission_code LIKE 'platform:lastleg:%'", "status='INACTIVE'", "deleted=1");
assertThat(sql).doesNotContain(":carton:", ":product:", ":outbound:", ":delivery:");
assertThat(sql).doesNotContain(":carton:", ":product:");
assertThat(catalog).contains("platform:overseas-warehouse:delivery:list");
assertCustomAdminGrant(sql);
assertCustomAdminNavigationGrant(sql);
}
@Test
@@ -58,6 +60,7 @@ class OverseasPhase4PermissionSqlContractTest {
assertThat(sql).contains("baiyue_iam.iam_permission", "baiyue_iam.iam_role_permission", "'lastleg:pda:operate'");
assertPdaPickerGrant(sql);
assertCustomAdminGrant(sql);
assertCustomAdminNavigationGrant(sql);
}
@Test
@@ -138,6 +141,17 @@ class OverseasPhase4PermissionSqlContractTest {
assertThat(sql.substring(grantStart, grantEnd)).contains("lastleg:pda:operate");
}
private static void assertCustomAdminNavigationGrant(String sql) {
int permissionIndex = sql.indexOf("'platform:overseas-warehouse:delivery:list'", sql.indexOf("PLATFORM_CUSTOM_ADMIN needs access"));
assertThat(permissionIndex).isGreaterThanOrEqualTo(0);
int grantStart = sql.lastIndexOf("INSERT IGNORE INTO", permissionIndex);
int grantEnd = sql.indexOf(';', permissionIndex);
assertThat(sql.substring(grantStart, grantEnd)).contains(
"UPPER(role.role_code)='PLATFORM_CUSTOM_ADMIN'",
"platform:overseas-warehouse:outbound:list",
"platform:overseas-warehouse:delivery:list");
}
private static String matrixBlock(String sql) {
int start = sql.indexOf("INSERT INTO tmp_phase4_warehouse_role_permission");
int end = sql.indexOf("DELETE grant_row FROM", start);