优化
This commit is contained in:
@@ -3503,7 +3503,9 @@ VALUES
|
|||||||
(5102044, 0, 'PLATFORM', 'BUTTON', 5102030,
|
(5102044, 0, 'PLATFORM', 'BUTTON', 5102030,
|
||||||
'platform:firstleg:inbound:weight:edit', '维护OCR重量', NULL, NULL, 30, 'ACTIVE', 0),
|
'platform:firstleg:inbound:weight:edit', '维护OCR重量', NULL, NULL, 30, 'ACTIVE', 0),
|
||||||
(5102045, 0, 'PLATFORM', 'BUTTON', 5102030,
|
(5102045, 0, 'PLATFORM', 'BUTTON', 5102030,
|
||||||
'platform:firstleg:inbound:weight:confirm', '确认OCR重量', NULL, NULL, 40, 'ACTIVE', 0)
|
'platform:firstleg:inbound:weight:confirm', '确认OCR重量', NULL, NULL, 40, 'ACTIVE', 0),
|
||||||
|
(5102194, 0, 'PLATFORM', 'BUTTON', 5102030,
|
||||||
|
'platform:firstleg:inbound:measure:manual-entry', '手动录入箱规', NULL, NULL, 25, 'ACTIVE', 0)
|
||||||
ON DUPLICATE KEY UPDATE
|
ON DUPLICATE KEY UPDATE
|
||||||
permission_type = VALUES(permission_type), parent_id = VALUES(parent_id),
|
permission_type = VALUES(permission_type), parent_id = VALUES(parent_id),
|
||||||
permission_name = VALUES(permission_name), route_path = VALUES(route_path),
|
permission_name = VALUES(permission_name), route_path = VALUES(route_path),
|
||||||
@@ -3511,12 +3513,21 @@ ON DUPLICATE KEY UPDATE
|
|||||||
|
|
||||||
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
SELECT 4000001, id, 0 FROM iam_permission
|
SELECT 4000001, id, 0 FROM iam_permission
|
||||||
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045)
|
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045, 5102194)
|
||||||
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||||
|
|
||||||
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
SELECT 4000003, id, 0 FROM iam_permission
|
SELECT 4000003, id, 0 FROM iam_permission
|
||||||
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045)
|
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045, 5102194)
|
||||||
|
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||||
|
|
||||||
|
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
|
SELECT role.id, permission.id, 0
|
||||||
|
FROM iam_role role
|
||||||
|
JOIN iam_permission permission
|
||||||
|
ON permission.tenant_id = 0
|
||||||
|
AND permission.permission_code = 'platform:firstleg:inbound:measure:manual-entry'
|
||||||
|
WHERE role.tenant_id = 0 AND role.role_code = 'WAREHOUSE_TALLY'
|
||||||
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||||
|
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
@@ -13886,27 +13897,17 @@ SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission
|
|||||||
'platform:finance:cost:view', 'platform:finance:cost:create',
|
'platform:finance:cost:view', 'platform:finance:cost:create',
|
||||||
'platform:finance:customer-terms:view', 'platform:finance:customer-terms:update')
|
'platform:finance:customer-terms:view', 'platform:finance:customer-terms:update')
|
||||||
ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id);
|
ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id);
|
||||||
DELETE rp
|
INSERT INTO baiyue_iam.iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
FROM baiyue_iam.iam_role_permission rp
|
SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission
|
||||||
JOIN baiyue_iam.iam_permission p
|
WHERE tenant_id=0 AND app_code='PLATFORM' AND permission_code IN (
|
||||||
ON p.id = rp.permission_id AND p.tenant_id = rp.tenant_id
|
'platform:finance:account:view', 'platform:finance:fee-source:view',
|
||||||
WHERE rp.role_id = 4000001
|
'platform:finance:fee-source:review', 'platform:finance:fee-source:settlement',
|
||||||
AND rp.tenant_id = 0
|
'platform:finance:reconciliation:create', 'platform:finance:reconciliation:review',
|
||||||
AND p.permission_code IN (
|
'platform:finance:reconciliation:issue', 'platform:finance:reconciliation:adjust',
|
||||||
'platform:finance:account:view',
|
'platform:finance:reconciliation:void', 'platform:finance:settlement-ar:create',
|
||||||
'platform:finance:fee-source:view',
|
'platform:finance:settlement-ap:create', 'platform:finance:settlement-ar:view',
|
||||||
'platform:finance:fee-source:review',
|
'platform:finance:settlement-ap:view', 'platform:finance:payment:create')
|
||||||
'platform:finance:fee-source:settlement',
|
ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id);
|
||||||
'platform:finance:reconciliation:create',
|
|
||||||
'platform:finance:reconciliation:review',
|
|
||||||
'platform:finance:reconciliation:issue',
|
|
||||||
'platform:finance:reconciliation:adjust',
|
|
||||||
'platform:finance:reconciliation:void',
|
|
||||||
'platform:finance:settlement-ar:create',
|
|
||||||
'platform:finance:settlement-ap:create',
|
|
||||||
'platform:finance:settlement-ar:view',
|
|
||||||
'platform:finance:settlement-ap:view',
|
|
||||||
'platform:finance:payment:create');
|
|
||||||
INSERT INTO baiyue_iam.iam_role_permission (role_id, permission_id, tenant_id)
|
INSERT INTO baiyue_iam.iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
SELECT 4000101, id, 10001 FROM baiyue_iam.iam_permission
|
SELECT 4000101, id, 10001 FROM baiyue_iam.iam_permission
|
||||||
WHERE tenant_id=10001 AND app_code='MERCHANT' AND (permission_code='merchant:finance:statement' OR permission_code LIKE 'merchant:finance:%')
|
WHERE tenant_id=10001 AND app_code='MERCHANT' AND (permission_code='merchant:finance:statement' OR permission_code LIKE 'merchant:finance:%')
|
||||||
@@ -13922,12 +13923,9 @@ BEGIN
|
|||||||
IF (SELECT COUNT(*) FROM baiyue_iam.iam_permission WHERE tenant_id=10001 AND app_code='MERCHANT' AND permission_code IN ('merchant:finance:statement:list','merchant:finance:statement:view') AND status='ACTIVE' AND deleted=0) <> 2 THEN
|
IF (SELECT COUNT(*) FROM baiyue_iam.iam_permission WHERE tenant_id=10001 AND app_code='MERCHANT' AND permission_code IN ('merchant:finance:statement:list','merchant:finance:statement:view') AND status='ACTIVE' AND deleted=0) <> 2 THEN
|
||||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:客户 Finance 只读权限不完整';
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:客户 Finance 只读权限不完整';
|
||||||
END IF;
|
END IF;
|
||||||
IF (SELECT COUNT(*) FROM baiyue_iam.iam_role_permission rp JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id WHERE rp.role_id=4000001 AND rp.tenant_id=0 AND (p.permission_code='platform:finance' OR p.permission_code LIKE 'platform:finance:%')) <> 13 THEN
|
IF (SELECT COUNT(*) FROM baiyue_iam.iam_role_permission rp JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id WHERE rp.role_id=4000001 AND rp.tenant_id=0 AND (p.permission_code='platform:finance' OR p.permission_code LIKE 'platform:finance:%')) <> 27 THEN
|
||||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:平台管理员 Finance 授权不完整';
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:平台管理员 Finance 授权不完整';
|
||||||
END IF;
|
END IF;
|
||||||
IF (SELECT COUNT(*) FROM baiyue_iam.iam_role_permission rp JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id WHERE rp.role_id=4000001 AND rp.tenant_id=0 AND p.id BETWEEN 5105022 AND 5105035) <> 0 THEN
|
|
||||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:Finance G1-G4 新权限不得默认授予平台管理员';
|
|
||||||
END IF;
|
|
||||||
IF (SELECT COUNT(*) FROM baiyue_iam.iam_role_permission rp JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id WHERE rp.role_id=4000101 AND rp.tenant_id=10001 AND (p.permission_code='merchant:finance:statement' OR p.permission_code LIKE 'merchant:finance:%')) <> 3 THEN
|
IF (SELECT COUNT(*) FROM baiyue_iam.iam_role_permission rp JOIN baiyue_iam.iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id WHERE rp.role_id=4000101 AND rp.tenant_id=10001 AND (p.permission_code='merchant:finance:statement' OR p.permission_code LIKE 'merchant:finance:%')) <> 3 THEN
|
||||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:客户管理员 Finance 只读授权不完整';
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='统一迁移失败:客户管理员 Finance 只读授权不完整';
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
+1
-1
@@ -125,7 +125,7 @@ public class PlatformInboundMeasurementController {
|
|||||||
@Operation(summary = "平台人工录入单箱测量",
|
@Operation(summary = "平台人工录入单箱测量",
|
||||||
description = "data 中传箱号和人工测量值,image 传当前箱图片,复用正式单箱覆盖规则。")
|
description = "data 中传箱号和人工测量值,image 传当前箱图片,复用正式单箱覆盖规则。")
|
||||||
@PostMapping(value = "/measurement/manual-cartons", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
@PostMapping(value = "/measurement/manual-cartons", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||||
@PreAuthorize("hasAuthority('platform:firstleg:inbound:measure:edit')")
|
@PreAuthorize("hasAuthority('platform:firstleg:inbound:measure:manual-entry')")
|
||||||
public ApiResponse<CartonMeasurementResult> createManualCarton(
|
public ApiResponse<CartonMeasurementResult> createManualCarton(
|
||||||
@AuthenticationPrincipal AuthenticatedUser user,
|
@AuthenticationPrincipal AuthenticatedUser user,
|
||||||
@RequestParam long tenantId,
|
@RequestParam long tenantId,
|
||||||
|
|||||||
@@ -431,7 +431,7 @@ paths:
|
|||||||
post:
|
post:
|
||||||
summary: 平台人工录入单箱测量
|
summary: 平台人工录入单箱测量
|
||||||
description: >-
|
description: >-
|
||||||
需要 platform:firstleg:inbound:measure:edit 权限;人工录入独立记录为 MANUAL/PLATFORM,
|
需要 platform:firstleg:inbound:measure:manual-entry 权限;人工录入独立记录为 MANUAL/PLATFORM,
|
||||||
复用正式单箱绑定、图片、计算和覆盖规则,不影响设备扫描入口。
|
复用正式单箱绑定、图片、计算和覆盖规则,不影响设备扫描入口。
|
||||||
parameters:
|
parameters:
|
||||||
- {name: tenantId, in: query, required: true, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
|
- {name: tenantId, in: query, required: true, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
|
||||||
|
|||||||
+3
@@ -29,6 +29,9 @@ class PlatformInboundMeasurementControllerContractTest {
|
|||||||
assertAuthority("simulateCartonScan", "hasAuthority('platform:firstleg:inbound:measure:edit')",
|
assertAuthority("simulateCartonScan", "hasAuthority('platform:firstleg:inbound:measure:edit')",
|
||||||
AuthenticatedUser.class, long.class, long.class,
|
AuthenticatedUser.class, long.class, long.class,
|
||||||
InboundMeasurementRequests.CartonScanRequest.class, MultipartFile.class);
|
InboundMeasurementRequests.CartonScanRequest.class, MultipartFile.class);
|
||||||
|
assertAuthority("createManualCarton", "hasAuthority('platform:firstleg:inbound:measure:manual-entry')",
|
||||||
|
AuthenticatedUser.class, long.class, long.class,
|
||||||
|
InboundMeasurementRequests.CartonScanRequest.class, MultipartFile.class);
|
||||||
assertAuthority("createWeightResult", "hasAuthority('platform:firstleg:inbound:weight:edit')",
|
assertAuthority("createWeightResult", "hasAuthority('platform:firstleg:inbound:weight:edit')",
|
||||||
AuthenticatedUser.class, long.class, long.class,
|
AuthenticatedUser.class, long.class, long.class,
|
||||||
InboundMeasurementRequests.CreateWeightResultRequest.class);
|
InboundMeasurementRequests.CreateWeightResultRequest.class);
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ VALUES
|
|||||||
(5102044, 0, 'PLATFORM', 'BUTTON', 5102030,
|
(5102044, 0, 'PLATFORM', 'BUTTON', 5102030,
|
||||||
'platform:firstleg:inbound:weight:edit', '维护OCR重量', NULL, NULL, 30, 'ACTIVE', 0),
|
'platform:firstleg:inbound:weight:edit', '维护OCR重量', NULL, NULL, 30, 'ACTIVE', 0),
|
||||||
(5102045, 0, 'PLATFORM', 'BUTTON', 5102030,
|
(5102045, 0, 'PLATFORM', 'BUTTON', 5102030,
|
||||||
'platform:firstleg:inbound:weight:confirm', '确认OCR重量', NULL, NULL, 40, 'ACTIVE', 0)
|
'platform:firstleg:inbound:weight:confirm', '确认OCR重量', NULL, NULL, 40, 'ACTIVE', 0),
|
||||||
|
(5102194, 0, 'PLATFORM', 'BUTTON', 5102030,
|
||||||
|
'platform:firstleg:inbound:measure:manual-entry', '手动录入箱规', NULL, NULL, 25, 'ACTIVE', 0)
|
||||||
ON DUPLICATE KEY UPDATE
|
ON DUPLICATE KEY UPDATE
|
||||||
permission_type = VALUES(permission_type), parent_id = VALUES(parent_id),
|
permission_type = VALUES(permission_type), parent_id = VALUES(parent_id),
|
||||||
permission_name = VALUES(permission_name), route_path = VALUES(route_path),
|
permission_name = VALUES(permission_name), route_path = VALUES(route_path),
|
||||||
@@ -23,10 +25,19 @@ ON DUPLICATE KEY UPDATE
|
|||||||
|
|
||||||
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
SELECT 4000001, id, 0 FROM iam_permission
|
SELECT 4000001, id, 0 FROM iam_permission
|
||||||
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045)
|
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045, 5102194)
|
||||||
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||||
|
|
||||||
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
SELECT 4000003, id, 0 FROM iam_permission
|
SELECT 4000003, id, 0 FROM iam_permission
|
||||||
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045)
|
WHERE id IN (5102041, 5102042, 5102043, 5102044, 5102045, 5102194)
|
||||||
|
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||||
|
|
||||||
|
INSERT INTO iam_role_permission (role_id, permission_id, tenant_id)
|
||||||
|
SELECT role.id, permission.id, 0
|
||||||
|
FROM iam_role role
|
||||||
|
JOIN iam_permission permission
|
||||||
|
ON permission.tenant_id = 0
|
||||||
|
AND permission.permission_code = 'platform:firstleg:inbound:measure:manual-entry'
|
||||||
|
WHERE role.tenant_id = 0 AND role.role_code = 'WAREHOUSE_TALLY'
|
||||||
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
ON DUPLICATE KEY UPDATE tenant_id = VALUES(tenant_id);
|
||||||
|
|||||||
+9
-17
@@ -11,7 +11,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
class FinanceG1G2PermissionSqlContractTest {
|
class FinanceG1G2PermissionSqlContractTest {
|
||||||
@Test
|
@Test
|
||||||
void declaresTheFourControllerPermissionsUnderFinanceWithoutDefaultRoleGrants() throws Exception {
|
void declaresTheFourControllerPermissionsUnderFinance() throws Exception {
|
||||||
String sql = new ClassPathResource("db/finance-g1-g2-permissions.sql")
|
String sql = new ClassPathResource("db/finance-g1-g2-permissions.sql")
|
||||||
.getContentAsString(StandardCharsets.UTF_8);
|
.getContentAsString(StandardCharsets.UTF_8);
|
||||||
|
|
||||||
@@ -26,8 +26,7 @@ class FinanceG1G2PermissionSqlContractTest {
|
|||||||
.contains("NULL, 'PUT', 160, 'ACTIVE', 1, 0")
|
.contains("NULL, 'PUT', 160, 'ACTIVE', 1, 0")
|
||||||
.contains("ON DUPLICATE KEY UPDATE")
|
.contains("ON DUPLICATE KEY UPDATE")
|
||||||
.contains("CALL migrate_finance_g1_g2_permissions()")
|
.contains("CALL migrate_finance_g1_g2_permissions()")
|
||||||
.contains("DROP PROCEDURE IF EXISTS migrate_finance_g1_g2_permissions")
|
.contains("DROP PROCEDURE IF EXISTS migrate_finance_g1_g2_permissions");
|
||||||
.doesNotContain("INSERT INTO iam_role_permission");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -48,13 +47,10 @@ class FinanceG1G2PermissionSqlContractTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void unifiedSqlMirrorsCatalogButDoesNotAutoGrantTheNewPermissions() throws Exception {
|
void unifiedSqlMirrorsCatalogAndGrantsTheFinanceCatalogToPlatformAdmin() throws Exception {
|
||||||
String sql = Files.readString(resolveUnifiedSql(), StandardCharsets.UTF_8);
|
String sql = Files.readString(resolveUnifiedSql(), StandardCharsets.UTF_8);
|
||||||
String financeSection = sql.substring(sql.indexOf("-- Finance F1 人工财务权限"),
|
String financeSection = sql.substring(sql.indexOf("-- Finance F1 人工财务权限"),
|
||||||
sql.indexOf("CALL assert_unified_final_schema()"));
|
sql.indexOf("CALL assert_unified_final_schema()"));
|
||||||
String platformAdminGrant = financeSection.substring(
|
|
||||||
financeSection.indexOf("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission"),
|
|
||||||
financeSection.indexOf("ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id);"));
|
|
||||||
|
|
||||||
assertThat(financeSection)
|
assertThat(financeSection)
|
||||||
.contains("(5105022, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:account:view'")
|
.contains("(5105022, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:account:view'")
|
||||||
@@ -67,17 +63,13 @@ class FinanceG1G2PermissionSqlContractTest {
|
|||||||
.contains("NULL, 'PUT', 160, 'ACTIVE', 1, 0")
|
.contains("NULL, 'PUT', 160, 'ACTIVE', 1, 0")
|
||||||
.contains("permission_code IN (\n 'platform:finance',")
|
.contains("permission_code IN (\n 'platform:finance',")
|
||||||
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 26")
|
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 26")
|
||||||
.contains("p.id BETWEEN 5105022 AND 5105035) <> 0")
|
|
||||||
.contains("平台管理员 Finance 授权不完整")
|
.contains("平台管理员 Finance 授权不完整")
|
||||||
.contains("Finance G1-G4 新权限不得默认授予平台管理员");
|
.contains("Finance G1-G4");
|
||||||
assertThat(platformAdminGrant)
|
assertThat(financeSection)
|
||||||
.contains("'platform:finance'")
|
.contains("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission")
|
||||||
.contains("'platform:finance:customer-terms:update'")
|
.contains("platform:finance:account:view")
|
||||||
.doesNotContain("LIKE 'platform:finance:%'")
|
.contains("platform:finance:settlement-ar:view")
|
||||||
.doesNotContain("platform:finance:account:view")
|
.contains("platform:finance:settlement-ap:view");
|
||||||
.doesNotContain("platform:finance:fee-source:view")
|
|
||||||
.doesNotContain("platform:finance:fee-source:review")
|
|
||||||
.doesNotContain("platform:finance:fee-source:settlement");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Path resolveUnifiedSql() {
|
private static Path resolveUnifiedSql() {
|
||||||
|
|||||||
+5
-7
@@ -19,7 +19,7 @@ class FinanceG3G4PermissionSqlContractTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void declaresAllFrozenControllerPermissionsWithoutDefaultRoleGrants() throws Exception {
|
void declaresAllFrozenControllerPermissions() throws Exception {
|
||||||
String sql = new ClassPathResource("db/finance-g3-g4-permissions.sql")
|
String sql = new ClassPathResource("db/finance-g3-g4-permissions.sql")
|
||||||
.getContentAsString(StandardCharsets.UTF_8);
|
.getContentAsString(StandardCharsets.UTF_8);
|
||||||
|
|
||||||
@@ -33,12 +33,11 @@ class FinanceG3G4PermissionSqlContractTest {
|
|||||||
.contains("finance G3/G4 permission id/code conflict")
|
.contains("finance G3/G4 permission id/code conflict")
|
||||||
.contains("permission catalog is incomplete")
|
.contains("permission catalog is incomplete")
|
||||||
.contains("finance permission parent is invalid")
|
.contains("finance permission parent is invalid")
|
||||||
.contains("CALL migrate_finance_g3_g4_permissions()")
|
.contains("CALL migrate_finance_g3_g4_permissions()");
|
||||||
.doesNotContain("INSERT INTO iam_role_permission");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void unifiedSqlContainsCatalogAndDoesNotGrantItToPlatformAdmin() throws Exception {
|
void unifiedSqlContainsCatalogAndGrantsItToPlatformAdmin() throws Exception {
|
||||||
String sql = Files.readString(resolveUnifiedSql(), StandardCharsets.UTF_8);
|
String sql = Files.readString(resolveUnifiedSql(), StandardCharsets.UTF_8);
|
||||||
String financeSection = sql.substring(sql.indexOf("-- Finance F1 人工财务权限"),
|
String financeSection = sql.substring(sql.indexOf("-- Finance F1 人工财务权限"),
|
||||||
sql.indexOf("CALL assert_unified_final_schema()"));
|
sql.indexOf("CALL assert_unified_final_schema()"));
|
||||||
@@ -46,12 +45,11 @@ class FinanceG3G4PermissionSqlContractTest {
|
|||||||
assertThat(financeSection)
|
assertThat(financeSection)
|
||||||
.contains("migrate_finance_g1_g4_permissions")
|
.contains("migrate_finance_g1_g4_permissions")
|
||||||
.contains("finance G1-G4 permission id/code conflict")
|
.contains("finance G1-G4 permission id/code conflict")
|
||||||
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 26")
|
.contains("permission_code LIKE 'platform:finance:%' AND status='ACTIVE' AND deleted=0) <> 26");
|
||||||
.contains("p.id BETWEEN 5105022 AND 5105035");
|
|
||||||
String grant = financeSection.substring(
|
String grant = financeSection.substring(
|
||||||
financeSection.indexOf("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission"),
|
financeSection.indexOf("SELECT 4000001, id, 0 FROM baiyue_iam.iam_permission"),
|
||||||
financeSection.indexOf("ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id);"));
|
financeSection.indexOf("ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id);"));
|
||||||
for (String code : CODES) assertThat(grant).doesNotContain(code);
|
for (String code : CODES) assertThat(grant).contains(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Path resolveUnifiedSql() {
|
private static Path resolveUnifiedSql() {
|
||||||
|
|||||||
Reference in New Issue
Block a user