feat(doctor): claim captcha+mobile, owner profile delete, admin map zoom fix
- DoctorClaimController: ALTCHA CaptchaGuard on /claim (dev no-op via ALTCHA_ENABLED=false); optional `mobile` field must match the logged-in user's number (422 ERR_CONFLICT_001 on mismatch) - DoctorController::delete: now IS_AUTHENTICATED_FULLY — admin (any) or the owner of a claimed profile (IDOR-guarded); FK appointment guard kept - DoctorDetailPage address map: MapController calls map.invalidateSize() before flyTo (fixes needing to pick a city twice on a freshly-mounted map); geocode retries once (nominatim empty/429 on first hit) - tests: mobile mismatch, owner-delete allowed + others 403, unclaimed not deletable by random user - docs: doctor-claim.md (mobile+captcha), doctor.md (delete permission) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+21
-16
@@ -230,8 +230,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"assets/admin/pages/DoctorDetailPage.tsx": {
|
||||
"mtime": 1783189217.065477,
|
||||
"ast_hash": "d10e0ec287b6d42011d384e3e8d8583b",
|
||||
"mtime": 1783768892.4257572,
|
||||
"ast_hash": "9e14c9cc70e4707bddaab0a5267e54c0",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"assets/admin/pages/DoctorFormPage.tsx": {
|
||||
@@ -1180,8 +1180,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Doctor/Controller/DoctorController.php": {
|
||||
"mtime": 1783747336.6328127,
|
||||
"ast_hash": "7828b41ebfdf61e887bf38d360c8a8e1",
|
||||
"mtime": 1783769018.613043,
|
||||
"ast_hash": "57c2d4ba148aa5084683dbfd08f8e2b0",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Doctor/Entity/Doctor.php": {
|
||||
@@ -2395,8 +2395,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"docs/api/doctor.md": {
|
||||
"mtime": 1783757329.0750217,
|
||||
"ast_hash": "cb33dfc5636d36fdb6c98402cb789340",
|
||||
"mtime": 1783769157.105152,
|
||||
"ast_hash": "572576e30db5b049cb62ba8d54bdf8a5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"docs/api/insurance.md": {
|
||||
@@ -3900,8 +3900,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Doctor/Controller/DoctorClaimController.php": {
|
||||
"mtime": 1783757329.0908747,
|
||||
"ast_hash": "ed52d6bb87506e44be9f86adffee5645",
|
||||
"mtime": 1783768981.0086484,
|
||||
"ast_hash": "997576824b9039e977fd58efb417cf70",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Doctor/Controller/DoctorImportController.php": {
|
||||
@@ -3930,8 +3930,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Doctor/Service/DoctorImportService.php": {
|
||||
"mtime": 1783765876.696864,
|
||||
"ast_hash": "56bacf3ad261680191151c347f8cd411",
|
||||
"mtime": 1783766986.8738186,
|
||||
"ast_hash": "a675ebe7e1acac7da14cc8de3364757e",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Shared/Util/PersianText.php": {
|
||||
@@ -3940,13 +3940,13 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"tests/Doctor/DoctorClaimTest.php": {
|
||||
"mtime": 1783757329.09223,
|
||||
"ast_hash": "5973aa00e5a19406cd79f93be5455b76",
|
||||
"mtime": 1783769087.937134,
|
||||
"ast_hash": "50ea89c2d246faf98dc843152d51a0c5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"tests/Doctor/DoctorImportTest.php": {
|
||||
"mtime": 1783765976.698628,
|
||||
"ast_hash": "1d99f84ff5b37dacd93000fa8562f994",
|
||||
"mtime": 1783766996.494613,
|
||||
"ast_hash": "997b8d698c8eb4bbf69652bdcead514d",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"tests/Shared/PersianTextTest.php": {
|
||||
@@ -3960,8 +3960,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"docs/api/doctor-claim.md": {
|
||||
"mtime": 1783757329.090325,
|
||||
"ast_hash": "1cc55e0c447ec1d4176adc0700b8da54",
|
||||
"mtime": 1783769130.2951994,
|
||||
"ast_hash": "2f4e095e4e0cac673062cc48b0577d5d",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"docs/scenarios/climed.md": {
|
||||
@@ -3993,5 +3993,10 @@
|
||||
"mtime": 1783765695.1482882,
|
||||
"ast_hash": "b03ab1640dc46aa51114fbc3eba51870",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
".claude/prompt/doctor-map-claim-captcha-delete.md": {
|
||||
"mtime": 1783768547.5967684,
|
||||
"ast_hash": "d4531629fe5bf2befc994f1a3f2a34ff",
|
||||
"semantic_hash": ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user