appwrite/app/controllers/shared/web.php

51 lines
1.8 KiB
PHP
Raw Normal View History

2019-05-09 06:54:39 +00:00
<?php
2020-06-28 17:31:21 +00:00
use Utopia\App;
2020-07-14 18:55:44 +00:00
use Utopia\Config\Config;
2019-05-09 06:54:39 +00:00
2020-06-30 11:09:28 +00:00
App::init(function ($utopia, $request, $response, $layout) {
/** @var Utopia\App $utopia */
/** @var Utopia\Swoole\Request $request */
2020-10-29 13:50:49 +00:00
/** @var Appwrite\Utopia\Response $response */
2020-06-30 11:09:28 +00:00
/** @var Utopia\View $layout */
2019-05-09 06:54:39 +00:00
2020-06-24 20:26:34 +00:00
/* AJAX check */
if (!empty($request->getQuery('version', ''))) {
$layout->setPath(__DIR__.'/../../views/layouts/empty.phtml');
}
2020-06-24 20:26:34 +00:00
$layout
->setParam('title', APP_NAME)
2020-06-30 11:09:28 +00:00
->setParam('protocol', $request->getProtocol())
2020-07-02 21:48:02 +00:00
->setParam('domain', $request->getHostname())
2020-06-28 20:45:36 +00:00
->setParam('home', App::getEnv('_APP_HOME'))
->setParam('setup', App::getEnv('_APP_SETUP'))
2020-06-24 20:26:34 +00:00
->setParam('class', 'unknown')
->setParam('icon', '/images/favicon.png')
->setParam('roles', [
['type' => 'owner', 'label' => 'Owner'],
['type' => 'developer', 'label' => 'Developer'],
['type' => 'admin', 'label' => 'Admin'],
])
2020-07-14 18:55:44 +00:00
->setParam('environments', Config::getParam('environments'))
->setParam('mode', App::getMode())
2020-06-24 20:26:34 +00:00
;
2019-05-09 06:54:39 +00:00
$time = (60 * 60 * 24 * 45); // 45 days cache
$response
->addHeader('Cache-Control', 'public, max-age='.$time)
2020-06-20 11:20:49 +00:00
->addHeader('Expires', \date('D, d M Y H:i:s', \time() + $time).' GMT') // 45 days cache
->addHeader('X-Frame-Options', 'SAMEORIGIN') // Avoid console and homepage from showing in iframes
->addHeader('X-UA-Compatible', 'IE=Edge') // Deny IE browsers from going into quirks mode
;
2019-05-09 06:54:39 +00:00
$route = $utopia->match($request);
$scope = $route->getLabel('scope', '');
$layout
2020-06-30 11:09:28 +00:00
->setParam('version', App::getEnv('_APP_VERSION', 'UNKNOWN'))
2020-06-29 21:43:34 +00:00
->setParam('isDev', App::isDevelopment())
2019-05-09 06:54:39 +00:00
->setParam('class', $scope)
;
2020-06-30 11:09:28 +00:00
}, ['utopia', 'request', 'response', 'layout'], 'web');