diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2025-02-27 11:59:44 +0100 |
---|---|---|
committer | Côme Chilliet <91878298+come-nc@users.noreply.github.com> | 2025-03-06 15:49:25 +0100 |
commit | 2cd90f828180b4b6c957bb76f73f46658e4e3d3d (patch) | |
tree | 066ce129fafbc7c1a23f921ab08b511cd469d55f | |
parent | 253628ad5a0c3b4242d2dbcb05bb802381b0d49f (diff) | |
download | nextcloud-server-2cd90f828180b4b6c957bb76f73f46658e4e3d3d.tar.gz nextcloud-server-2cd90f828180b4b6c957bb76f73f46658e4e3d3d.zip |
fix: Replace all usage of OC_Template by the new API
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-rw-r--r-- | apps/dav/lib/Files/BrowserErrorPagePlugin.php | 5 | ||||
-rw-r--r-- | lib/private/TemplateLayout.php | 54 | ||||
-rw-r--r-- | lib/private/legacy/OC_Template.php | 2 | ||||
-rw-r--r-- | lib/public/Util.php | 3 | ||||
-rw-r--r-- | public.php | 5 | ||||
-rw-r--r-- | remote.php | 16 |
6 files changed, 42 insertions, 43 deletions
diff --git a/apps/dav/lib/Files/BrowserErrorPagePlugin.php b/apps/dav/lib/Files/BrowserErrorPagePlugin.php index 1491e1a89b1..de86c4995e2 100644 --- a/apps/dav/lib/Files/BrowserErrorPagePlugin.php +++ b/apps/dav/lib/Files/BrowserErrorPagePlugin.php @@ -8,9 +8,10 @@ namespace OCA\DAV\Files; use OC\AppFramework\Http\Request; -use OC_Template; use OCP\AppFramework\Http\ContentSecurityPolicy; +use OCP\AppFramework\Http\TemplateResponse; use OCP\IRequest; +use OCP\Template\ITemplateManager; use Sabre\DAV\Exception; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; @@ -84,7 +85,7 @@ class BrowserErrorPagePlugin extends ServerPlugin { $templateName = (string)$httpCode; } - $content = new OC_Template('core', $templateName, 'guest'); + $content = \OCP\Server::get(ITemplateManager::class)->getTemplate('core', $templateName, TemplateResponse::RENDER_AS_GUEST); $content->assign('title', $this->server->httpResponse->getStatusText()); $content->assign('remoteAddr', $request->getRemoteAddress()); $content->assign('requestID', $request->getId()); diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index e52ef702ad3..8ba648ebdb0 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -15,6 +15,7 @@ use OC\Search\SearchQuery; use OC\Template\CSSResourceLocator; use OC\Template\JSConfigHelper; use OC\Template\JSResourceLocator; +use OC\Template\Template; use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; use OCP\Defaults; @@ -25,35 +26,29 @@ use OCP\IRequest; use OCP\IURLGenerator; use OCP\IUserSession; use OCP\L10N\IFactory; +use OCP\Server; use OCP\ServerVersion; use OCP\Support\Subscription\IRegistry; use OCP\Util; -class TemplateLayout extends \OC_Template { - private static $versionHash = ''; +class TemplateLayout extends Template { + private static string $versionHash = ''; /** @var string[] */ private static $cacheBusterCache = []; - /** @var CSSResourceLocator|null */ - public static $cssLocator = null; - - /** @var JSResourceLocator|null */ - public static $jsLocator = null; + public static ?CSSResourceLocator $cssLocator = null; + public static ?JSResourceLocator $jsLocator = null; private IConfig $config; private IAppManager $appManager; private InitialStateService $initialState; private INavigationManager $navigationManager; - /** - * @param string $renderAs - * @param string $appId application id - */ - public function __construct($renderAs, $appId = '') { - $this->config = \OCP\Server::get(IConfig::class); - $this->appManager = \OCP\Server::get(IAppManager::class); - $this->initialState = \OCP\Server::get(InitialStateService::class); - $this->navigationManager = \OCP\Server::get(INavigationManager::class); + public function __construct(string $renderAs, string $appId = '') { + $this->config = Server::get(IConfig::class); + $this->appManager = Server::get(IAppManager::class); + $this->initialState = Server::get(InitialStateService::class); + $this->navigationManager = Server::get(INavigationManager::class); // Add fallback theming variables if not rendered as user if ($renderAs !== TemplateResponse::RENDER_AS_USER) { @@ -84,8 +79,7 @@ class TemplateLayout extends \OC_Template { // Set body data-theme $this->assign('enabledThemes', []); if ($this->appManager->isEnabledForUser('theming') && class_exists('\OCA\Theming\Service\ThemesService')) { - /** @var \OCA\Theming\Service\ThemesService */ - $themesService = \OC::$server->get(\OCA\Theming\Service\ThemesService::class); + $themesService = Server::get(\OCA\Theming\Service\ThemesService::class); $this->assign('enabledThemes', $themesService->getEnabledThemes()); } @@ -122,7 +116,7 @@ class TemplateLayout extends \OC_Template { } $userDisplayName = false; - $user = \OC::$server->get(IUserSession::class)->getUser(); + $user = Server::get(IUserSession::class)->getUser(); if ($user) { $userDisplayName = $user->getDisplayName(); } @@ -161,8 +155,7 @@ class TemplateLayout extends \OC_Template { // Set body data-theme $this->assign('enabledThemes', []); if ($this->appManager->isEnabledForUser('theming') && class_exists('\OCA\Theming\Service\ThemesService')) { - /** @var \OCA\Theming\Service\ThemesService $themesService */ - $themesService = \OC::$server->get(\OCA\Theming\Service\ThemesService::class); + $themesService = Server::get(\OCA\Theming\Service\ThemesService::class); $this->assign('enabledThemes', $themesService->getEnabledThemes()); } @@ -170,8 +163,7 @@ class TemplateLayout extends \OC_Template { $logoUrl = $this->config->getSystemValueString('logo_url', ''); $this->assign('logoUrl', $logoUrl); - /** @var IRegistry $subscription */ - $subscription = \OCP\Server::get(IRegistry::class); + $subscription = Server::get(IRegistry::class); $showSimpleSignup = $this->config->getSystemValueBool('simpleSignUpLink.shown', true); if ($showSimpleSignup && $subscription->delegateHasValidSubscription()) { $showSimpleSignup = false; @@ -184,7 +176,7 @@ class TemplateLayout extends \OC_Template { } if ($this->appManager->isEnabledForUser('registration')) { - $urlGenerator = \OCP\Server::get(IURLGenerator::class); + $urlGenerator = Server::get(IURLGenerator::class); $signUpLink = $urlGenerator->getAbsoluteURL('/index.php/apps/registration/'); } @@ -194,9 +186,10 @@ class TemplateLayout extends \OC_Template { parent::__construct('core', 'layout.base'); } // Send the language, locale, and direction to our layouts - $lang = \OC::$server->get(IFactory::class)->findLanguage(); - $locale = \OC::$server->get(IFactory::class)->findLocale($lang); - $direction = \OC::$server->getL10NFactory()->getLanguageDirection($lang); + $l10nFactory = Server::get(IFactory::class); + $lang = $l10nFactory->findLanguage(); + $locale = $l10nFactory->findLocale($lang); + $direction = $l10nFactory->getLanguageDirection($lang); $lang = str_replace('_', '-', $lang); $this->assign('language', $lang); @@ -249,15 +242,17 @@ class TemplateLayout extends \OC_Template { $this->append('jsfiles', $web . '/' . $file . $this->getVersionHashSuffix()); } + $request = \OCP\Server::get(IRequest::class); + try { - $pathInfo = \OC::$server->getRequest()->getPathInfo(); + $pathInfo = $request->getPathInfo(); } catch (\Exception $e) { $pathInfo = ''; } // Do not initialise scss appdata until we have a fully installed instance // Do not load scss for update, errors, installation or login page - if (\OC::$server->getSystemConfig()->getValue('installed', false) + if ($this->config->getSystemValueBool('installed', false) && !\OCP\Util::needUpgrade() && $pathInfo !== '' && !preg_match('/^\/login/', $pathInfo) @@ -291,7 +286,6 @@ class TemplateLayout extends \OC_Template { } } - $request = \OCP\Server::get(IRequest::class); if ($request->isUserAgent([Request::USER_AGENT_CLIENT_IOS, Request::USER_AGENT_SAFARI, Request::USER_AGENT_SAFARI_MOBILE])) { // Prevent auto zoom with iOS but still allow user zoom // On chrome (and others) this does not work (will also disable user zoom) diff --git a/lib/private/legacy/OC_Template.php b/lib/private/legacy/OC_Template.php index afa640632f8..77b25477d31 100644 --- a/lib/private/legacy/OC_Template.php +++ b/lib/private/legacy/OC_Template.php @@ -19,7 +19,7 @@ class OC_Template extends \OC\Template\Template { * Shortcut to print a simple page for guests * @param string $application The application we render the template for * @param string $name Name of the template - * @param array|string $parameters Parameters for the template + * @param array $parameters Parameters for the template * @return bool * @deprecated 32.0.0 Use \OCP\Template\ITemplateManager instead */ diff --git a/lib/public/Util.php b/lib/public/Util.php index d7f7bbe4f94..713db9134f8 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -384,7 +384,7 @@ class Util { /** * Cached encrypted CSRF token. Some static unit-tests of ownCloud compare - * multiple OC_Template elements which invoke `callRegister`. If the value + * multiple Template elements which invoke `callRegister`. If the value * would not be cached these unit-tests would fail. * @var string */ @@ -393,6 +393,7 @@ class Util { /** * Register an get/post call. This is important to prevent CSRF attacks * @since 4.5.0 + * @deprecated 32.0.0 directly use CsrfTokenManager instead */ public static function callRegister() { if (self::$token === '') { diff --git a/public.php b/public.php index 9443367eb12..682d5cb2538 100644 --- a/public.php +++ b/public.php @@ -14,6 +14,7 @@ use OCP\App\IAppManager; use OCP\IConfig; use OCP\IRequest; use OCP\Server; +use OCP\Template\ITemplateManager; use OCP\Util; use Psr\Log\LoggerInterface; @@ -92,9 +93,9 @@ try { } //show the user a detailed error page Server::get(LoggerInterface::class)->error($ex->getMessage(), ['app' => 'public', 'exception' => $ex]); - OC_Template::printExceptionErrorPage($ex, $status); + Server::get(ITemplateManager::class)->printExceptionErrorPage($ex, $status); } catch (Error $ex) { //show the user a detailed error page Server::get(LoggerInterface::class)->error($ex->getMessage(), ['app' => 'public', 'exception' => $ex]); - OC_Template::printExceptionErrorPage($ex, 500); + Server::get(ITemplateManager::class)->printExceptionErrorPage($ex, 500); } diff --git a/remote.php b/remote.php index f63fd49354a..7058e7aceb4 100644 --- a/remote.php +++ b/remote.php @@ -9,6 +9,8 @@ require_once __DIR__ . '/lib/versioncheck.php'; use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin; use OCP\App\IAppManager; +use OCP\IRequest; +use OCP\Template\ITemplateManager; use Psr\Log\LoggerInterface; use Sabre\DAV\Exception\ServiceUnavailable; use Sabre\DAV\Server; @@ -23,7 +25,7 @@ class RemoteException extends \Exception { function handleException(Exception|Error $e): void { try { - $request = \OC::$server->getRequest(); + $request = \OCP\Server::get(IRequest::class); // in case the request content type is text/xml - we assume it's a WebDAV request $isXmlContentType = strpos($request->getHeader('Content-Type'), 'text/xml'); if ($isXmlContentType === 0) { @@ -31,7 +33,7 @@ function handleException(Exception|Error $e): void { $server = new Server(); if (!($e instanceof RemoteException)) { // we shall not log on RemoteException - $server->addPlugin(new ExceptionLoggerPlugin('webdav', \OC::$server->get(LoggerInterface::class))); + $server->addPlugin(new ExceptionLoggerPlugin('webdav', \OCP\Server::get(LoggerInterface::class))); } $server->on('beforeMethod:*', function () use ($e) { if ($e instanceof RemoteException) { @@ -54,19 +56,19 @@ function handleException(Exception|Error $e): void { } if ($e instanceof RemoteException) { // we shall not log on RemoteException - OC_Template::printErrorPage($e->getMessage(), '', $e->getCode()); + \OCP\Server::get(ITemplateManager::class)->printErrorPage($e->getMessage(), '', $e->getCode()); } else { - \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), ['app' => 'remote','exception' => $e]); - OC_Template::printExceptionErrorPage($e, $statusCode); + \OCP\Server::get(LoggerInterface::class)->error($e->getMessage(), ['app' => 'remote','exception' => $e]); + \OCP\Server::get(ITemplateManager::class)->printExceptionErrorPage($e, $statusCode); } } } catch (\Exception $e) { - OC_Template::printExceptionErrorPage($e, 500); + \OCP\Server::get(ITemplateManager::class)->printExceptionErrorPage($e, 500); } } /** - * @param $service + * @param string $service * @return string */ function resolveService($service) { |