2 declare(strict_types = 1);
19 use Psr\Http\Message\ResponseInterface;
20 use Psr\Http\Message\ServerRequestInterface;
21 use Psr\Http\Server\MiddlewareInterface;
22 use Psr\Http\Server\RequestHandlerInterface;
42 $this->context = GeneralUtility::makeInstance(Context::class);
53 public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
55 if ((
bool)$this->context->getPropertyFromAspect(
'backend.user',
'isLoggedIn',
false)) {
58 $showHiddenRecords = ($this->context->hasAspect(
'visibility') ? $this->context->getAspect(
'visibility')->includeHidden() :
false);
59 $GLOBALS[
'TSFE']->fePreview = ($simulatingDate || $simulatingGroup || $showHiddenRecords);
62 return $handler->handle($request);
77 protected function simulateDate(ServerRequestInterface $request): bool
79 $simulatedDate =
null;
80 $queryTime = $request->getQueryParams()[
'ADMCMD_simTime'] ??
false;
85 $simulatedDate = new \DateTimeImmutable(
'@' . $queryTime);
86 if (!$simulatedDate) {
91 $GLOBALS[
'SIM_ACCESS_TIME'] = $queryTime - $queryTime % 60;
92 $this->context->setAspect(
94 GeneralUtility::makeInstance(
95 DateTimeAspect::class,
116 $simulateUserGroup = (int)($request->getQueryParams()[
'ADMCMD_simUser'] ?? 0);
117 if (!$simulateUserGroup) {
121 $frontendUser =
$GLOBALS[
'TSFE']->fe_user;
122 $frontendUser->user[$frontendUser->usergroup_column] = $simulateUserGroup;
124 $frontendUser->user[
'uid'] = PHP_INT_MAX;
125 $this->context->setAspect(
127 GeneralUtility::makeInstance(