From 5b51d5b3f1a0977853fcb15fa5b8e889e62fae10 Mon Sep 17 00:00:00 2001
From: g1307092382 <1307092382@qq.com>
Date: Thu, 10 Sep 2026 10:58:43 +0800
Subject: [PATCH] feat: complete phase 02 RBAC and data scope recovery
---
.gitignore | 1 +
admin-web/src/layouts/MainLayout.vue | 10 +-
.../modules/banner/BannerManagementView.vue | 4 +-
.../modules/content/ContentManagementView.vue | 2 +-
.../src/modules/counseling/CounselingView.vue | 37 +-
.../service-program/ServiceProgramView.vue | 2 +-
.../service-station/ServiceStationView.vue | 2 +-
admin-web/src/router/index.ts | 29 +-
admin-web/src/stores/auth.ts | 6 +-
backend/.env.example | 16 +
backend/pom.xml | 14 +
.../account/controller/AccountController.java | 39 +-
.../controller/AccountOperatorController.java | 20 +-
.../controller/ActivityController.java | 63 ++-
.../ActivityInterestController.java | 36 +-
.../ActivityOperatorController.java | 47 +-
.../controller/CheckinController.java | 38 +-
.../ActivityMutualConsentController.java | 39 +-
.../analytics/AnalyticsController.java | 2 +
.../appeal/controller/AppealController.java | 27 +-
.../controller/AppealOperatorController.java | 31 +-
.../audit/controller/AuditLogController.java | 2 +
.../auth/controller/AuthController.java | 47 +-
.../controller/OperatorAuthController.java | 30 ++
.../auth/service/OperatorAuthService.java | 18 +-
.../content/controller/ContentController.java | 48 +-
.../controller/CounselingController.java | 76 ++-
.../service/CounselingServiceApp.java | 32 +-
.../controller/DiscoverController.java | 21 +-
.../home/controller/HomeController.java | 19 +-
.../LocalEligibilityController.java | 31 +-
.../controller/RecommendationController.java | 27 +-
.../MatchmakerOperatorController.java | 52 +-
.../controller/MatchmakerUserController.java | 31 +-
.../messaging/controller/ChatController.java | 37 +-
.../controller/MessageController.java | 39 +-
.../messaging/safety/MessageRiskService.java | 4 +-
.../controller/NotificationController.java | 31 +-
.../controller/OperatorController.java | 25 +-
.../controller/OrganizationController.java | 22 +-
.../photo/controller/PhotoController.java | 41 +-
.../controller/InterestController.java | 23 +-
.../controller/PreferenceController.java | 23 +-
.../profile/controller/PrivacyController.java | 23 +-
.../profile/controller/ProfileController.java | 35 +-
.../controller/ReferralController.java | 36 +-
.../controller/RelationshipController.java | 63 +--
.../RelationshipStatusController.java | 47 +-
.../review/controller/ReviewController.java | 48 +-
.../controller/UserReviewController.java | 23 +-
.../risk/controller/ReportController.java | 23 +-
.../controller/ReportOperatorController.java | 37 +-
.../risk/controller/RiskController.java | 25 +-
.../ServiceAppointmentController.java | 53 +-
.../mapper/ServiceAppointmentMapper.java | 12 +
.../service/ServiceAppointmentService.java | 18 +-
.../controller/ServiceProgramController.java | 51 +-
.../shared/config/SecurityConfig.java | 33 +-
.../platform/shared/constant/Constants.java | 23 +
.../controller/FeatureFlagController.java | 6 +-
.../shared/crypto/EncryptionUtil.java | 6 +-
.../shared/exception/BusinessException.java | 10 +-
.../exception/GlobalExceptionHandler.java | 14 +
.../platform/shared/filter/JwtAuthFilter.java | 31 +-
.../shared/filter/PermissionFilter.java | 97 ----
.../security/AuthorizationAuditListener.java | 58 +++
.../shared/security/DataScopeGuard.java | 37 ++
.../security/principal/OperatorPrincipal.java | 21 +
.../security/principal/PlatformPrincipal.java | 6 +
.../security/principal/UserPrincipal.java | 10 +
.../user/controller/UserController.java | 32 +-
.../IdentityVerificationController.java | 29 +-
.../resources/application-dev.yml.example | 37 ++
.../src/main/resources/application-docker.yml | 78 +++
...8__add_service_location_operator_scope.sql | 12 +
...__complete_service_station_permissions.sql | 14 +
.../auth/OperatorAuthServiceTest.java | 64 +++
.../auth/controller/AuthControllerTest.java | 11 +-
...ntentControllerPermissionContractTest.java | 33 ++
.../counseling/CounselingDataScopeTest.java | 93 ++++
.../deployment/MigrationValidationTest.java | 12 +-
.../discover/DiscoverServiceTest.java | 7 +-
.../invariants/CoreInvariantsTest.java | 2 +-
.../invariants/P0FixVerificationTest.java | 13 +-
.../match/MatchEligibilityServiceTest.java | 6 +-
...dationEngineBidirectionalRequiredTest.java | 9 +-
.../RecommendationEngineServiceMockTest.java | 2 +-
.../messaging/MessageRiskServiceTest.java | 2 +-
.../platform/photo/PhotoServiceTest.java | 2 +-
.../AuthorizationAuditListenerTest.java | 38 ++
...peratorEndpointPermissionCoverageTest.java | 80 +++
.../PrincipalInjectionContractTest.java | 41 ++
.../platform/security/SecurityTests.java | 7 +-
.../security/V11MethodSecurityMatrixTest.java | 109 ++++
.../V11PermissionMatrixContractTest.java | 66 +++
.../ServiceAppointmentDataScopeTest.java | 85 +++
.../controller/HealthControllerTest.java | 24 +-
.../shared/filter/JwtAuthFilterTest.java | 101 ++++
.../src/test/resources/application-test.yml | 8 +
docs/JIRA_BACKLOG.md | 4 +-
...1-Recovery-Completion-Report-2026-09-10.md | 55 ++
docs/STATUS.md | 15 +-
...阳 V1.1 客户需求基线增量开发与修复计划.md | 10 +-
infrastructure/docker-compose.yml | 111 ++++
releases/v1.0.0-RC.1/STATUS.md | 100 ++++
releases/v1.0.0-RC.1/TECHNICAL_SPECS.md | 231 ++++++++
releases/v1.0.0-RC.2/STATUS.md | 83 +++
tests/e2e/content_e2e_test.py | 72 +++
tests/e2e/counseling_v11_test.py | 117 +++++
tests/e2e/multi_type_activity_test.py | 47 ++
tests/e2e/organization_isolation_test.py | 32 ++
tests/e2e/referral_v11_test.py | 145 ++++++
tests/e2e/run_v11_tests.py | 183 +++++++
tests/e2e/service_station_permission_test.py | 40 ++
tests/invariant_integration_test.py | 491 ++++++++++++++++++
115 files changed, 3608 insertions(+), 1135 deletions(-)
create mode 100644 backend/.env.example
create mode 100644 backend/src/main/java/com/danyang/match/platform/auth/controller/OperatorAuthController.java
delete mode 100644 backend/src/main/java/com/danyang/match/platform/shared/filter/PermissionFilter.java
create mode 100644 backend/src/main/java/com/danyang/match/platform/shared/security/AuthorizationAuditListener.java
create mode 100644 backend/src/main/java/com/danyang/match/platform/shared/security/DataScopeGuard.java
create mode 100644 backend/src/main/java/com/danyang/match/platform/shared/security/principal/OperatorPrincipal.java
create mode 100644 backend/src/main/java/com/danyang/match/platform/shared/security/principal/PlatformPrincipal.java
create mode 100644 backend/src/main/java/com/danyang/match/platform/shared/security/principal/UserPrincipal.java
create mode 100644 backend/src/main/resources/application-dev.yml.example
create mode 100644 backend/src/main/resources/application-docker.yml
create mode 100644 backend/src/main/resources/db/migration/V028__add_service_location_operator_scope.sql
create mode 100644 backend/src/main/resources/db/migration/V029__complete_service_station_permissions.sql
create mode 100644 backend/src/test/java/com/danyang/match/platform/auth/OperatorAuthServiceTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/content/ContentControllerPermissionContractTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/counseling/CounselingDataScopeTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/security/AuthorizationAuditListenerTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/security/OperatorEndpointPermissionCoverageTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/security/PrincipalInjectionContractTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/security/V11MethodSecurityMatrixTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/security/V11PermissionMatrixContractTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/service_appointment/ServiceAppointmentDataScopeTest.java
create mode 100644 backend/src/test/java/com/danyang/match/platform/shared/filter/JwtAuthFilterTest.java
create mode 100644 docs/Phase-02-V11-Recovery-Completion-Report-2026-09-10.md
create mode 100644 infrastructure/docker-compose.yml
create mode 100644 releases/v1.0.0-RC.1/STATUS.md
create mode 100644 releases/v1.0.0-RC.1/TECHNICAL_SPECS.md
create mode 100644 releases/v1.0.0-RC.2/STATUS.md
create mode 100644 tests/e2e/content_e2e_test.py
create mode 100644 tests/e2e/counseling_v11_test.py
create mode 100644 tests/e2e/multi_type_activity_test.py
create mode 100644 tests/e2e/organization_isolation_test.py
create mode 100644 tests/e2e/referral_v11_test.py
create mode 100644 tests/e2e/run_v11_tests.py
create mode 100644 tests/e2e/service_station_permission_test.py
create mode 100644 tests/invariant_integration_test.py
diff --git a/.gitignore b/.gitignore
index 391f4f5..2b612b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
node_modules/
backend/local-maven/
backend/build-temp/
+backend/.m2/
__pycache__/
*.py[cod]
*.lock
diff --git a/admin-web/src/layouts/MainLayout.vue b/admin-web/src/layouts/MainLayout.vue
index 9819485..de547e3 100644
--- a/admin-web/src/layouts/MainLayout.vue
+++ b/admin-web/src/layouts/MainLayout.vue
@@ -38,22 +38,22 @@
审计日志
-
+
Banner管理
-
+
内容管理
-
+
善缘服务站
-
+
服务预约
专项服务项目
-
+
婚恋咨询
diff --git a/admin-web/src/modules/banner/BannerManagementView.vue b/admin-web/src/modules/banner/BannerManagementView.vue
index a0e90a1..576853f 100644
--- a/admin-web/src/modules/banner/BannerManagementView.vue
+++ b/admin-web/src/modules/banner/BannerManagementView.vue
@@ -69,8 +69,8 @@
-
-
+
+
取消
diff --git a/admin-web/src/modules/content/ContentManagementView.vue b/admin-web/src/modules/content/ContentManagementView.vue
index 20c6654..bf0e16d 100644
--- a/admin-web/src/modules/content/ContentManagementView.vue
+++ b/admin-web/src/modules/content/ContentManagementView.vue
@@ -78,7 +78,7 @@