aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2025-02-27 11:59:44 +0100
committerCôme Chilliet <91878298+come-nc@users.noreply.github.com>2025-03-06 15:49:25 +0100
commit2cd90f828180b4b6c957bb76f73f46658e4e3d3d (patch)
tree066ce129fafbc7c1a23f921ab08b511cd469d55f
parent253628ad5a0c3b4242d2dbcb05bb802381b0d49f (diff)
downloadnextcloud-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.php5
-rw-r--r--lib/private/TemplateLayout.php54
-rw-r--r--lib/private/legacy/OC_Template.php2
-rw-r--r--lib/public/Util.php3
-rw-r--r--public.php5
-rw-r--r--remote.php16
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) {