Skip to content
Snippets Groups Projects
  1. Jul 18, 2023
    • Stefan Bürk's avatar
      [BUGFIX] Enhance matching order for regex based redirects · 1f1082b9
      Stefan Bürk authored
      RegEx redirects have been processed in the order how they
      have been inserted into the database ignoring the flag
      `respect_query_parameters` completely. Due to this fact,
      a non-query argument based regex redirect would match
      before a concrete query-argument aware regexp redirect
      have been matched - additionally favored by the changes
      introduced with #96480 to provide a fallback.
      
      To combine all use-cases and additionally fix the detected
      issues, this change now splits the cached regex redirects
      into two flavors:
      
      * `regexp_respect_query_parameters`
      * `regexp_flat`
      
      That follows the pre-selection for the non-regex redirects.
      Redirects respecting query paramaters have higher precedence
      above the non-respecting once. Therefore, the matching flow
      in the `RedirectService` has been aligned correspondingly to
      respect this separated workflow.
      
      The #96480 is now only applied for regex redirects which do
      not respect query-arguments at all. It should be considered
      if we should remove that safety fallback and enforce correct
      regex redirects in a dedicated future change.
      
      Furthermore, a deterministic sorting criteria chain has been
      added to the `RedirectCacheService` to ensure a deterministic
      loading and caching order of redirects.
      
      The changes play together, which is the reason why they are
      included in one change and to avoid a inbetween incorrect
      test chain.
      
      Regression tests have been added to cover the cases.
      
      Resolves: #101191
      Related: #96480
      Releases: main, 12.4, 11.5
      Change-Id: I9638835c33809e92ba883efb65d86bb1e9f5031b
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/80079
      
      
      Tested-by: default avatarStefan B�rk <stefan@buerk.tech>
      Reviewed-by: default avatarStefan B�rk <stefan@buerk.tech>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      1f1082b9
    • Andreas Fernandez's avatar
      [BUGFIX] Make icon cache in localStorage version-aware · 2bc1c01d
      Andreas Fernandez authored
      The identifier for the icon cache used in the client's localStorage is
      now version-aware to get a chance of updated icons after a release. It
      now uses the same identifier as the backend cache.
      
      Previously, only the registry state itself was taken into account which
      may not change if icons assets get updated.
      
      Resolves: #101348
      Releases: main, 12.4, 11.5
      Change-Id: I15dfc9d4bf1288f9787f88f579beccf3b13a3fc6
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/80073
      
      
      Tested-by: default avatarBenjamin Franzke <ben@bnf.dev>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Reviewed-by: default avatarBenjamin Franzke <ben@bnf.dev>
      2bc1c01d
  2. Jul 17, 2023
  3. Jul 15, 2023
  4. Jul 14, 2023
  5. Jul 13, 2023
  6. Jul 12, 2023
  7. Jul 11, 2023
  8. Jul 10, 2023
  9. Jul 08, 2023
  10. Jul 07, 2023
  11. Jul 06, 2023
  12. Jul 05, 2023
  13. Jul 04, 2023
    • Stefan Bürk's avatar
      [BUGFIX] Resolve page with trailing slash requested without one · 9d43c6f8
      Stefan Bürk authored
      With #89091 pages with slugs containing trailing slash have
      been enabled to be resolved when requested with trailing
      slash in the request uri and have been a logical follow-up
      of #86055.
      
      In between an issue with language fallback chain have been
      found, which allowed that a valid translated page could be
      resolved with the default language slug even and reported
      as #88715 and #96010. These issues have been solved with
      https://review.typo3.org/c/Packages/TYPO3.CMS/+/75101 which
      partly broke the original implemented behaviour for pages
      with trailing slash slugs requested without a trailing slash.
      
      This change now ensures pages are resolved containing a trailing
      slash in their "slug" like "/my-page/subpage/" if requested without
      the trailing slash like "https://domain.tld/my-page/subpage".
      
      Additionally, tests are added to cover this case along with
      other possible cases. This should detect future regressions.
      
      The docblock return annotation for `PageRouter::matchRequest()` is
      changed to the correct returned value, removing ignore pattern for
      the phpstan baseline instead of increasing the counter.
      
      Note: This change ensures that a page can be resolved in any
            constellation with trailing slash in record slug/not
            in record slug and requested with trailing slash/not
            requested slug. In both cases, already working and the
            now fixed variant are serving both potential duplicate
            content - if no correct cannonical url is provided.
      
      Tackling the duplicate issue should be done in a dedicated
      change for both cases.
      
      Used command(s):
      
      > Build/Scripts/runTests.sh -s phpstanGenerateBaseline
      
      Resolves: #100990
      Related: #96010
      Related: #88715
      Related: #89091
      Related: #86055
      Releases: main, 12.4, 11.5
      Change-Id: I9f26c4500e2f812e8727b4b565570fcc579bf3e6
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/79705
      
      
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      9d43c6f8
    • Alexander Schnitzler's avatar
      [BUGFIX] Avoid symfony/property-access in getGettablePropertyNames() · 26e15895
      Alexander Schnitzler authored
      ObjectAccess::getGettablePropertyNames() has quite the history by now.
      It used to be quite simple, an is_callable() check for getters/hassers
      and issers of objects. That didn't account for methods with mandatory
      method arguments which was fixed by using reflection. Because runtime
      reflection is slow, the usage of cached reflection (ClassSchema) had
      been introduced. But, during that change, symfony/property-access had
      also been introduces, which contradicts the idea of performance gain
      because:
      
      - symfony/property-access also uses uncached reflection
      - symfony/property-access actually calls the accessors under test
      
      As both is undesirable, the usage of symfony/property-access has been
      removed again.
      
      Releases: main, 12.4, 11.5
      Resolves: #101176
      Change-Id: I2bc796ebeaf2f1357fd3154b711910c6f553f4e4
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/79676
      
      
      Tested-by: default avatarBenni Mack <benni@typo3.org>
      Reviewed-by: default avatarBenni Mack <benni@typo3.org>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      26e15895