Skip to content
Snippets Groups Projects
  1. Jan 23, 2022
    • Claire's avatar
      Fix error-prone SQL queries (#15828) · 0a120d86
      Claire authored
      * Fix error-prone SQL queries in Account search
      
      While this code seems to not present an actual vulnerability, one could
      easily be introduced by mistake due to how the query is built.
      
      This PR parameterises the `to_tsquery` input to make the query more robust.
      
      * Harden code for Status#tagged_with_all and Status#tagged_with_none
      
      Those two scopes aren't used in a way that could be vulnerable to an SQL
      injection, but keeping them unchanged might be a hazard.
      
      * Remove unneeded spaces surrounding tsquery term
      
      * Please CodeClimate
      
      * Move advanced_search_for SQL template to its own function
      
      This avoids one level of indentation while making clearer that the SQL template
      isn't build from all the dynamic parameters of advanced_search_for.
      
      * Add tests covering tagged_with, tagged_with_all and tagged_with_none
      
      * Rewrite tagged_with_none to avoid multiple joins and make it more robust
      
      * Remove obsolete brakeman warnings
      
      * Revert "Remove unneeded spaces surrounding tsquery term"
      
      The two queries are not strictly equivalent.
      
      This reverts commit 86f16c537e06c6ba4a8b250f25dcce9f049023ff.
      0a120d86
  2. Jan 19, 2022
    • Eugen Rochko's avatar
      Add support for editing for published statuses (#16697) · 1060666c
      Eugen Rochko authored
      * Add support for editing for published statuses
      
      * Fix references to stripped-out code
      
      * Various fixes and improvements
      
      * Further fixes and improvements
      
      * Fix updates being potentially sent to unauthorized recipients
      
      * Various fixes and improvements
      
      * Fix wrong words in test
      
      * Fix notifying accounts that were tagged but were not in the audience
      
      * Fix mistake
      1060666c
  3. Jan 17, 2022
  4. Jan 16, 2022
  5. Dec 17, 2021
  6. Dec 05, 2021
  7. Nov 26, 2021
  8. Nov 25, 2021
  9. Nov 24, 2021
    • Claire's avatar
      Fix error when suspending user with an already-existing canonical email block (#17036) · 02a87431
      Claire authored
      * Fix error when suspending user with an already-existing canonical email block
      
      Fixes #17033
      
      While attempting to create a `CanonicalEmailBlock` with an existing hash would
      raise an `ActiveRecord::RecordNotUnique` error, this being done within a
      transaction would cancel the whole transaction. For this reason, checking for
      uniqueness in Rails would query the database within the transaction and avoid
      invalidating the whole transaction for this reason.
      
      A race condition is still possible, where multiple accounts sharing a canonical
      email would be blocked in concurrent transactions, in which only one would
      succeed, but that is way less likely to happen that the current issue, and can
      always be retried after the first failure, unlike the current situation.
      
      * Add tests
      02a87431
  10. Nov 05, 2021
  11. Oct 21, 2021
    • Claire's avatar
      Fix some link previews being incorrectly generated from other prior links (#16885) · ec059317
      Claire authored
      * Add tests
      
      * Fix some link previews being incorrectly generated from different prior links
      
      PR #12403 added a cache to avoid redundant queries when the OEmbed endpoint can
      be guessed from the URL. This caching mechanism is not perfectly correct as
      there is no guarantee that all pages from a given domain share the same
      OEmbed provider endpoint.
      
      This PR prevents the FetchOEmbedService from caching OEmbed endpoint that
      cannot be generalized by replacing a fully-qualified URL from the endpoint's
      parameters, greatly reducing the number of incorrect cached generalizations.
      ec059317
  12. Oct 20, 2021
  13. Oct 18, 2021
  14. Oct 14, 2021
  15. Oct 13, 2021
  16. Oct 06, 2021
    • Claire's avatar
      Fix media attachment size validation not correctly accounting for file type (#16819) · 84ceebe1
      Claire authored
      * Fix media attachment size validation not correctly accounting for file type
      
      Fixes a regression introduced in #16724 caused by the fact that kt-paperclip
      now correctly runs validations before processing, meaning that file size
      verification could not rely on our before_post_processing hook.
      
      Moved the `before_post_processing` hooks to `before_validate` to make sure
      the media attachment type is set correctly before the file gets validated.
      
      * Add tests
      84ceebe1
  17. Sep 30, 2021
  18. Sep 29, 2021
    • Claire's avatar
      Switch from unmaintained paperclip to kt-paperclip (#16724) · fc3ae134
      Claire authored
      * Switch from unmaintained paperclip to kt-paperclip
      
      * Drop some compatibility monkey-patches not required by kt-paperclip
      
      * Drop media spoof check monkey-patching
      
      It's broken with kt-paperclip and hopefully it won't be needed anymore
      
      * Fix regression introduced by paperclip 6.1.0
      
      * Do not rely on pathname to call FastImage
      
      * Add test for ogg vorbis file with cover art
      
      * Add audio/vorbis to the accepted content-types
      
      This seems erroneous as this would be the content-type for a vorbis stream
      without an ogg container, but that's what the `marcel` gem outputs, so…
      
      * Restore missing for_as_default method
      
      * Refactor Attachmentable concern and delay Paperclip's content-type spoof check
      
      Check for content-type spoofing *after* setting the extension ourselves, this
      fixes a regression with kt-paperclip's validations being more strict than
      paperclip 6.0.0 and rejecting some Pleroma uploads because of unknown
      extensions.
      
      * Please CodeClimate
      
      * Add audio/vorbis to the unreliable set
      
      It doesn't correspond to a file format and thus has no extension associated.
      fc3ae134
  19. Sep 26, 2021
  20. Sep 15, 2021
  21. Sep 13, 2021
    • Claire's avatar
      Stop setting a shortcode to newly-created media attachments (#16730) · db57bff1
      Claire authored
      * Stop setting a shortcode to newly-created media attachments
      
      The WebUI has stopped using the “short media URL” in ages. This isn't used
      anywhere except for mail notifications.
      
      Deprecating it would allow us to eventually get rid of at least a database
      column and corruption-prone index, as well as a controller.
      
      * Fix tests
      db57bff1
  22. Sep 08, 2021
  23. Sep 01, 2021
  24. Aug 25, 2021
    • Claire's avatar
      Fix authentication failures after going halfway through a sign-in attempt (#16607) · 94bcf453
      Claire authored
      * Add tests
      
      * Add security-related tests
      
      My first (unpublished) attempt at fixing the issues introduced (extremely
      hard-to-exploit) security vulnerabilities, addressing them in a test.
      
      * Fix authentication failures after going halfway through a sign-in attempt
      
      * Refactor `authenticate_with_sign_in_token` and `authenticate_with_two_factor` to make the two authentication steps more obvious
      94bcf453
  25. Aug 20, 2021
  26. Aug 11, 2021
  27. Aug 09, 2021
    • Claire's avatar
      Add feature to automatically delete old toots (#16529) · 4ac78e2a
      Claire authored
      * Add account statuses cleanup policy model
      
      * Record last inspected toot to delete to speed up successive calls to statuses_to_delete
      
      * Add service to cleanup a given account's statuses within a budget
      
      * Add worker to go through account policies and delete old toots
      
      * Fix last inspected status id logic
      
      All existing statuses older or equal to last inspected status id must be
      kept by the current policy. This is an invariant that must be kept so that
      resuming deletion from the last inspected status remains sound.
      
      * Add tests
      
      * Refactor scheduler and add tests
      
      * Add user interface
      
      * Add support for discriminating based on boosts/favs
      
      * Add UI support for min_reblogs and min_favs, rework UI
      
      * Address first round of review comments
      
      * Replace Snowflake#id_at_start with with_random parameter
      
      * Add tests
      
      * Add tests for StatusesCleanupController
      
      * Rework settings page
      
      * Adjust load-avoiding mechanisms
      
      * Please CodeClimate
      4ac78e2a
  28. Aug 08, 2021
  29. Jul 14, 2021
  30. Jul 13, 2021
  31. Jul 08, 2021
  32. Jul 07, 2021
Loading