Skip to content
Snippets Groups Projects
  1. Feb 07, 2022
  2. Feb 06, 2022
  3. Feb 03, 2022
  4. Jan 28, 2022
  5. Jan 27, 2022
    • Claire's avatar
      Refactor and improve tests (#17386) · e38fc319
      Claire authored
      * Change account and user fabricators to simplify and improve tests
      
      - `Fabricate(:account)` implicitly fabricates an associated `user` if
        no `domain` attribute is given (an account with `domain: nil` is
        considered a local account, but no user record was created), unless
        `user: nil` is passed
      - `Fabricate(:account, user: Fabricate(:user))` should still be possible
        but is discouraged.
      
      * Fix and refactor tests
      
      - avoid passing unneeded attributes to `Fabricate(:user)` or
        `Fabricate(:account)`
      - avoid embedding `Fabricate(:user)` into a `Fabricate(:account)` or the other
        way around
      - prefer `Fabricate(:user, account_attributes: …)` to
        `Fabricate(:user, account: Fabricate(:account, …)`
      - also, some tests were using remote accounts with local user records, which is
        not representative of production code.
      Unverified
      e38fc319
  6. Jan 26, 2022
  7. 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.
      Unverified
      0a120d86
  8. 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
      Unverified
      1060666c
  9. Jan 17, 2022
  10. Jan 16, 2022
  11. Dec 17, 2021
  12. Dec 05, 2021
  13. Nov 26, 2021
  14. Nov 25, 2021
  15. 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
      Unverified
      02a87431
  16. Nov 05, 2021
  17. 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.
      Unverified
      ec059317
  18. Oct 20, 2021
  19. Oct 18, 2021
  20. Oct 14, 2021
  21. Oct 13, 2021
  22. 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
      Unverified
      84ceebe1
  23. Sep 30, 2021
  24. 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.
      Unverified
      fc3ae134
  25. Sep 26, 2021
  26. Sep 15, 2021
  27. 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
      Unverified
      db57bff1
  28. Sep 08, 2021
  29. Sep 01, 2021
  30. 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
      Unverified
      94bcf453
  31. Aug 20, 2021
  32. Aug 11, 2021
Loading