1. 30 Aug, 2018 1 commit
  2. 27 Jun, 2018 1 commit
    • Benni Mack's avatar
      [FEATURE] Add Contexts for storing data access modes · 5f8f50a0
      Benni Mack authored and Andreas Fernandez's avatar Andreas Fernandez committed
      A new "Context" concept is added which allows to keep
      the state of common TYPO3 Request Data in form of
      so-called Aspects.
      An aspect contains properties which can be fetched,
      but only the ones that are really necessary, instead of
      exposing a full object (e.g. BE_USER).
      The main goal is to centralize some global variables
      distributed in various places.
      In the first step the following variables are considered:
      - $TSFE->showHiddenPages
      - $TSFE->showHiddenRecords
      - $TSFE->beUserLogin
      - $TSFE->gr_list
      - $TSFE->loginUser
      - $GLOBALS['BE_USER']->workspace
      For now the Context is a singleton object, but should
      be fetched from a DI container.
      Sometimes a custom context is necessary, so it is
      cloned (see usage in TSFE).
      The difference to the PSR-7 request attributes is that the
      context is ONLY related to data access (like permissions / visibility)
      and also independent if TYPO3 is running via HTTP or CLI
      (thus, can be used in CLI mode as well).
      Next Steps:
      - Migrate PageRepository->versioningWorkspaceId
      - Migrate TSFE->simUserGroup
      - Use DateTimeAspect everywhere
      - Introduce Language + Page Aspects
      - Introduce the context object into ContentObjectRenderer and cObjects
      - Use Contexts in RestrictionContainers
      - Use Contexts in TYPO3 Backend
      - Decouple sys_page behaviour from TSFE where applicable
      - Ensure TypoScript conditions continue to work / have a documented alternative
      Resolves: #85389
      Releases: master
      Change-Id: I9e27e581a1632fcd8c3c6a9e0954b76b91f42c52
      Reviewed-on: https://review.typo3.org/57104
      Tested-by: default avatarTYPO3com <no-reply@typo3.com>
      Reviewed-by: Stefan Bürk's avatarStefan Bürk <stefan.buerk@pure-metal.de>
      Tested-by: Stefan Bürk's avatarStefan Bürk <stefan.buerk@pure-metal.de>
      Reviewed-by: Susanne Moog's avatarSusanne Moog <susanne.moog@typo3.org>
      Tested-by: Susanne Moog's avatarSusanne Moog <susanne.moog@typo3.org>
      Reviewed-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Tested-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>