feat(iam): add exception order process permission
This commit is contained in:
@@ -31,6 +31,7 @@ class IamOpenApiContractTest {
|
||||
.contains("platform:overseas-warehouse:delivery:status")
|
||||
.contains("platform:overseas-warehouse:exception-order:list")
|
||||
.contains("platform:overseas-warehouse:exception-order:create")
|
||||
.contains("platform:overseas-warehouse:exception-order:process")
|
||||
.contains("platform:overseas-warehouse:customer-visit:list")
|
||||
.contains("platform:overseas-warehouse:customer-visit:edit")
|
||||
.contains("platform:overseas-warehouse:outbound:cancel")
|
||||
|
||||
+6
-2
@@ -25,6 +25,7 @@ class Phase5DeliveryPermissionSqlContractTest {
|
||||
"platform:overseas-warehouse:delivery:list",
|
||||
"platform:overseas-warehouse:exception-order:list",
|
||||
"platform:overseas-warehouse:exception-order:create",
|
||||
"platform:overseas-warehouse:exception-order:process",
|
||||
"platform:overseas-warehouse:delivery:return",
|
||||
"platform:overseas-warehouse:delivery:status",
|
||||
"platform:overseas-warehouse:customer-visit:list",
|
||||
@@ -54,6 +55,7 @@ class Phase5DeliveryPermissionSqlContractTest {
|
||||
"'platform:overseas-warehouse:dispatch:cancel','取消海外排车',NULL,'DELETE'",
|
||||
"'platform:overseas-warehouse:exception-order:list','海外异常订单','/overseas-warehouse/exception-orders','GET'",
|
||||
"'platform:overseas-warehouse:exception-order:create','新增海外异常订单',NULL,'POST'",
|
||||
"'platform:overseas-warehouse:exception-order:process','处理海外异常订单',NULL,'POST'",
|
||||
"'platform:overseas-warehouse:delivery:return','派送单标记退货',NULL,'POST'",
|
||||
"'platform:overseas-warehouse:delivery:status','编辑派送单状态',NULL,'PUT'",
|
||||
"'platform:overseas-warehouse:customer-visit:list','客户回访','/overseas-warehouse/customer-visits','GET'",
|
||||
@@ -75,6 +77,7 @@ class Phase5DeliveryPermissionSqlContractTest {
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:edit')",
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:outbound:create')",
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:exception-order:create')",
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:exception-order:process')",
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:delivery:return')",
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:delivery:status')",
|
||||
"('WAREHOUSE_OPERATOR','platform:overseas-warehouse:customer-visit:edit')",
|
||||
@@ -89,6 +92,7 @@ class Phase5DeliveryPermissionSqlContractTest {
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:dispatch:edit')",
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:outbound:create')",
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:exception-order:create')",
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:exception-order:process')",
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:delivery:return')",
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:delivery:status')",
|
||||
"('WAREHOUSE_TALLY','platform:overseas-warehouse:customer-visit:edit')",
|
||||
@@ -106,7 +110,7 @@ class Phase5DeliveryPermissionSqlContractTest {
|
||||
"SELECT COALESCE(SUM(role_code='WAREHOUSE_OPERATOR'),0)",
|
||||
"COALESCE(SUM(role_code='WAREHOUSE_TALLY'),0)",
|
||||
"INTO v_warehouse_operator_permission_count, v_warehouse_tally_permission_count",
|
||||
"IF v_warehouse_operator_permission_count <> 14",
|
||||
"IF v_warehouse_operator_permission_count <> 15",
|
||||
"OR v_warehouse_tally_permission_count <> 5 THEN",
|
||||
"IF EXISTS (SELECT 1 FROM iam_role role",
|
||||
"AND UPPER(role.role_code)='PLATFORM_CUSTOM_ADMIN'",
|
||||
@@ -160,7 +164,7 @@ class Phase5DeliveryPermissionSqlContractTest {
|
||||
"海外排车、出库与派送权限",
|
||||
"测试和部署只执行固定入口,不再单独执行模块脚本",
|
||||
"排车列表/编辑/取消/转派送",
|
||||
"异常订单列表/创建和客户回访列表/编辑十四项权限",
|
||||
"异常订单列表/创建/处理和客户回访列表/编辑十五项权限",
|
||||
"merchant:warehouse:delivery:list",
|
||||
"merchant:warehouse:delivery:create",
|
||||
"PDA 岗位不得获得上述后台权限");
|
||||
|
||||
+14
-14
@@ -37,12 +37,12 @@ class Phase5DeliveryPermissionSqlExecutionTest {
|
||||
assertThat(customAdministratorViolations(connection)).isEqualTo(1);
|
||||
|
||||
executeGrant(connection);
|
||||
assertThat(grantCount(connection, 11L)).isEqualTo(14);
|
||||
assertThat(grantCount(connection, 11L)).isEqualTo(15);
|
||||
assertThat(customAdministratorViolations(connection)).isZero();
|
||||
|
||||
executeGrant(connection);
|
||||
assertThat(grantCount(connection, 11L)).isEqualTo(14);
|
||||
assertThat(totalGrantCount(connection)).isEqualTo(14);
|
||||
assertThat(grantCount(connection, 11L)).isEqualTo(15);
|
||||
assertThat(totalGrantCount(connection)).isEqualTo(15);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,14 +51,14 @@ class Phase5DeliveryPermissionSqlExecutionTest {
|
||||
try (Connection connection = database()) {
|
||||
insertRole(connection, 21L, "PLATFORM_CUSTOM_ADMIN");
|
||||
insertRole(connection, 22L, "Platform_Custom_Admin");
|
||||
grantFirstPermissions(connection, 21L, 14);
|
||||
grantFirstPermissions(connection, 22L, 13);
|
||||
grantFirstPermissions(connection, 21L, 15);
|
||||
grantFirstPermissions(connection, 22L, 14);
|
||||
|
||||
assertThat(customAdministratorViolations(connection)).isEqualTo(1);
|
||||
|
||||
executeGrant(connection);
|
||||
assertThat(grantCount(connection, 21L)).isEqualTo(14);
|
||||
assertThat(grantCount(connection, 22L)).isEqualTo(14);
|
||||
assertThat(grantCount(connection, 21L)).isEqualTo(15);
|
||||
assertThat(grantCount(connection, 22L)).isEqualTo(15);
|
||||
assertThat(customAdministratorViolations(connection)).isZero();
|
||||
}
|
||||
}
|
||||
@@ -68,16 +68,16 @@ class Phase5DeliveryPermissionSqlExecutionTest {
|
||||
try (Connection connection = database()) {
|
||||
insertRole(connection, 31L, "PLATFORM_CUSTOM_ADMIN");
|
||||
insertRole(connection, 32L, "platform_custom_admin");
|
||||
grantFirstPermissions(connection, 31L, 14);
|
||||
grantFirstPermissions(connection, 32L, 14);
|
||||
grantFirstPermissions(connection, 31L, 15);
|
||||
grantFirstPermissions(connection, 32L, 15);
|
||||
|
||||
assertThat(customAdministratorViolations(connection)).isZero();
|
||||
executeGrant(connection);
|
||||
executeGrant(connection);
|
||||
|
||||
assertThat(grantCount(connection, 31L)).isEqualTo(14);
|
||||
assertThat(grantCount(connection, 32L)).isEqualTo(14);
|
||||
assertThat(totalGrantCount(connection)).isEqualTo(28);
|
||||
assertThat(grantCount(connection, 31L)).isEqualTo(15);
|
||||
assertThat(grantCount(connection, 32L)).isEqualTo(15);
|
||||
assertThat(totalGrantCount(connection)).isEqualTo(30);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ class Phase5DeliveryPermissionSqlExecutionTest {
|
||||
AND (SELECT COUNT(*) FROM iam_role_permission grant_row
|
||||
JOIN iam_permission permission ON permission.id=grant_row.permission_id
|
||||
WHERE grant_row.role_id=role.id AND grant_row.tenant_id=role.tenant_id
|
||||
AND permission.permission_code IN (%s)) <> 14
|
||||
AND permission.permission_code IN (%s)) <> 15
|
||||
""".formatted(placeholders);
|
||||
try (PreparedStatement query = connection.prepareStatement(sql)) {
|
||||
int index = 1;
|
||||
@@ -209,7 +209,7 @@ class Phase5DeliveryPermissionSqlExecutionTest {
|
||||
LinkedHashSet<String> codes = new LinkedHashSet<>();
|
||||
String grant = administratorGrantSql();
|
||||
PLATFORM_CODE.matcher(grant).results().map(result -> result.group()).forEach(codes::add);
|
||||
assertThat(codes).hasSize(14);
|
||||
assertThat(codes).hasSize(15);
|
||||
return codes;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user