-
Notifications
You must be signed in to change notification settings - Fork 243
FOUR-28723 | Store Logs For Deleting Cases via API #8678
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Record deletion moved to trait to resolve sonarqube complexity issue (too many methods in DeleteCase)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
|




Issue
Ticket: FOUR-28723
This PR implements security logging for case deletions performed via the API, ensuring that all case deletion activities are traceable and auditable through ProcessMaker's existing security log infrastructure.
Solution
CaseDeletedEvent (ProcessMaker/Events/CaseDeleted.php)SecurityLogEventInterfaceto enable security logging for case deletionsDeleteCaseAction (ProcessMaker/Http/Controllers/Api/Actions/Cases/DeleteCase.php)DeletesCaseRecordstrait to reduce class complexityDeletesCaseRecordsTrait (ProcessMaker/Http/Controllers/Api/Actions/Cases/DeletesCaseRecords.php)tests/Feature/Api/SecurityLogsTest.php)testCaseDeleted()test to verify that case deletions are properly loggedHow To Test
CaseDeletedlog entry appears in the listCaseDeletedlog entry to view detailed informationtests/Feature/Api/SecurityLogsTest.php --filter=testCaseDeletedCode Review Checklist
Note
Security logging for case deletions
CaseDeletedevent implementingSecurityLogEventInterfacewithname,case_number, anddeleted_atindataandcase_numberinchanges.DeleteCasenow usesDeletesCaseRecordstrait (extracted all record-deletion helpers) and dispatchesCaseDeletedafter a successful transaction; addsgetCaseTitleto resolve a human-readable title fromCaseStartedor the firstProcessRequest.CaseDeletedinEventServiceProviderto be handled bySecurityLoggerwhenapp.security_logis enabled.testCaseDeletedinSecurityLogsTestto verify aCaseDeletedsecurity log is emitted onDELETE /api/cases/{case_number}.Written by Cursor Bugbot for commit 0e8b89f. This will update automatically on new commits. Configure here.