* Work in Progress
* Time for Refactoring
* WIP Implementation, still lacking tests
* Incorporate PR feedback from team
* Working now
* Add specs specific to JSON being returned by "update" action
* Refactors and Bug-Fixes from PR review
* Add audit logging for negative reactions
This change saves requests that create negative reactions to the audit
log. We need to be monitoring admin and moderator actions throughout the
app to increase visiblity on how our tools are being used and identify
abuse.
Additionally, this will help east concerns about giving elevated users
more powerful tools.
* Add a basic UI for moderator audit logs
* Log experience level ratings
* Log tag adjustments
* UI tweaks for moderator actions log
* Add logging to internal reactions controller
* Add logging for admin actions on users and articles
* Add searching to the moderator actions table
* Move audit instrumentation out of concern
We are able to use a PORO here instead of using a Rails concern. Moving
this also makes syntax to audit something quite a bit more explicit and
obvious to future developers
* Change moderator logs pagination page length
* Move auditing to after action filters
* Add moderator actions to the internal navbar
* Add request spec for internal moderator actions
* Use request params to populate AuditLog slug
* Add UI to vomit on a user from /mod
Co-authored-by: MichaelaHunter <michaela1234@gmail.com>
* Add backend tweaks for vomitting on users
Co-authored-by: Andy Zhao <17884966+Zhao-Andy@users.noreply.github.com>
* Validate that users can't moderate articles
* Add system spec for article mod page
* Satisfy rubocop after rebase
* Fix typo and formatting
* Use reactable_id instead of user_id
Co-authored-by: Michaela Hunter <60361569+MichaelaHunter@users.noreply.github.com>
Co-authored-by: Andy Zhao <17884966+Zhao-Andy@users.noreply.github.com>
* Add sink user service and specs for mass vomits
* Use new score calculation
* Lower articles' scores instead and make async
* Add lower score functionality to controllers
* Remove unused variable
* Use correct var and add missing arg
* Remove unused status
* Add composite index for reactable_type and ID
* Use alias instead of additional boolean
* Use medium priority for sink worker
* Log to honeybadger and not logs
* Log the error and not a string