0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-04-16 22:28:27 +00:00

fix: Migrate all uses of OCP\Template to OCP\Template\ITemplateManager

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
Côme Chilliet 2025-03-03 11:38:39 +01:00 committed by Côme Chilliet
parent 7d64c63acf
commit f033ef7c18
12 changed files with 74 additions and 61 deletions
apps
twofactor_backupcodes
user_ldap
lib/Settings
tests/Settings
lib
tests/Core/Controller

View file

@ -17,7 +17,8 @@ use OCP\Authentication\TwoFactorAuth\IProvidesPersonalSettings;
use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\IUser;
use OCP\Template;
use OCP\Template\ITemplate;
use OCP\Template\ITemplateManager;
class BackupCodesProvider implements IDeactivatableByAdmin, IProvidesPersonalSettings {
@ -36,6 +37,7 @@ class BackupCodesProvider implements IDeactivatableByAdmin, IProvidesPersonalSet
private IL10N $l10n,
AppManager $appManager,
private IInitialStateService $initialStateService,
private ITemplateManager $templateManager,
) {
$this->appManager = $appManager;
}
@ -71,10 +73,10 @@ class BackupCodesProvider implements IDeactivatableByAdmin, IProvidesPersonalSet
* Get the template for rending the 2FA provider view
*
* @param IUser $user
* @return Template
* @return ITemplate
*/
public function getTemplate(IUser $user): Template {
return new Template('twofactor_backupcodes', 'challenge');
public function getTemplate(IUser $user): ITemplate {
return $this->templateManager->getTemplate('twofactor_backupcodes', 'challenge');
}
/**

View file

@ -6,13 +6,16 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\TwoFactorBackupCodes\Settings;
use OCP\Authentication\TwoFactorAuth\IPersonalProviderSettings;
use OCP\Template;
use OCP\Server;
use OCP\Template\ITemplate;
use OCP\Template\ITemplateManager;
class Personal implements IPersonalProviderSettings {
public function getBody(): Template {
return new Template('twofactor_backupcodes', 'personal');
public function getBody(): ITemplate {
return Server::get(ITemplateManager::class)->getTemplate('twofactor_backupcodes', 'personal');
}
}

View file

@ -14,28 +14,21 @@ use OCA\TwoFactorBackupCodes\Service\BackupCodeStorage;
use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\IUser;
use OCP\Template;
use OCP\Server;
use OCP\Template\ITemplateManager;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackupCodesProviderTest extends TestCase {
private string $appName;
/** @var string */
private $appName;
private BackupCodeStorage&MockObject $storage;
private IL10N&MockObject $l10n;
private AppManager&MockObject $appManager;
private IInitialStateService&MockObject $initialState;
/** @var BackupCodeStorage|\PHPUnit\Framework\MockObject\MockObject */
private $storage;
/** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
private $l10n;
/** @var AppManager|\PHPUnit\Framework\MockObject\MockObject */
private $appManager;
/** @var IInitialStateService|\PHPUnit\Framework\MockObject\MockObject */
private $initialState;
/** @var BackupCodesProvider */
private $provider;
private ITemplateManager $templateManager;
private BackupCodesProvider $provider;
protected function setUp(): void {
parent::setUp();
@ -45,8 +38,16 @@ class BackupCodesProviderTest extends TestCase {
$this->l10n = $this->createMock(IL10N::class);
$this->appManager = $this->createMock(AppManager::class);
$this->initialState = $this->createMock(IInitialStateService::class);
$this->templateManager = Server::get(ITemplateManager::class);
$this->provider = new BackupCodesProvider($this->appName, $this->storage, $this->l10n, $this->appManager, $this->initialState);
$this->provider = new BackupCodesProvider(
$this->appName,
$this->storage,
$this->l10n,
$this->appManager,
$this->initialState,
$this->templateManager,
);
}
public function testGetId(): void {
@ -71,7 +72,7 @@ class BackupCodesProviderTest extends TestCase {
public function testGetTempalte(): void {
$user = $this->getMockBuilder(IUser::class)->getMock();
$expected = new Template('twofactor_backupcodes', 'challenge');
$expected = $this->templateManager->getTemplate('twofactor_backupcodes', 'challenge');
$this->assertEquals($expected, $this->provider->getTemplate($user));
}

View file

@ -13,14 +13,12 @@ use OCP\IDBConnection;
use OCP\IL10N;
use OCP\Server;
use OCP\Settings\IDelegatedSettings;
use OCP\Template;
use OCP\Template\ITemplateManager;
class Admin implements IDelegatedSettings {
/**
* @param IL10N $l
*/
public function __construct(
private IL10N $l,
private ITemplateManager $templateManager,
) {
}
@ -40,11 +38,12 @@ class Admin implements IDelegatedSettings {
$hosts = $helper->getServerConfigurationHosts();
$wControls = new Template('user_ldap', 'part.wizardcontrols');
$wControls = $this->templateManager->getTemplate('user_ldap', 'part.wizardcontrols');
$wControls = $wControls->fetchPage();
$sControls = new Template('user_ldap', 'part.settingcontrols');
$sControls = $this->templateManager->getTemplate('user_ldap', 'part.settingcontrols');
$sControls = $sControls->fetchPage();
$parameters = [];
$parameters['serverConfigurationPrefixes'] = $prefixes;
$parameters['serverConfigurationHosts'] = $hosts;
$parameters['settingControls'] = $sControls;

View file

@ -9,7 +9,9 @@ use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\Settings\Admin;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IL10N;
use OCP\Template;
use OCP\Server;
use OCP\Template\ITemplateManager;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
@ -17,17 +19,19 @@ use Test\TestCase;
* @package OCA\User_LDAP\Tests\Settings
*/
class AdminTest extends TestCase {
/** @var Admin */
private $admin;
/** @var IL10N */
private $l10n;
private IL10N&MockObject $l10n;
private ITemplateManager $templateManager;
private Admin $admin;
protected function setUp(): void {
parent::setUp();
$this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
$this->templateManager = Server::get(ITemplateManager::class);
$this->admin = new Admin(
$this->l10n
$this->l10n,
$this->templateManager,
);
}
@ -38,11 +42,12 @@ class AdminTest extends TestCase {
$prefixes = ['s01'];
$hosts = ['s01' => ''];
$wControls = new Template('user_ldap', 'part.wizardcontrols');
$wControls = $this->templateManager->getTemplate('user_ldap', 'part.wizardcontrols');
$wControls = $wControls->fetchPage();
$sControls = new Template('user_ldap', 'part.settingcontrols');
$sControls = $this->templateManager->getTemplate('user_ldap', 'part.settingcontrols');
$sControls = $sControls->fetchPage();
$parameters = [];
$parameters['serverConfigurationPrefixes'] = $prefixes;
$parameters['serverConfigurationHosts'] = $hosts;
$parameters['settingControls'] = $sControls;

View file

@ -824,7 +824,7 @@ class OC {
]
);
$tmpl = new OCP\Template('core', 'untrustedDomain', 'guest');
$tmpl = Server::get(ITemplateManager::class)->getTemplate('core', 'untrustedDomain', 'guest');
$tmpl->assign('docUrl', Server::get(IURLGenerator::class)->linkToDocs('admin-trusted-domains'));
$tmpl->printPage();

View file

@ -40,7 +40,7 @@ class TemplateManager implements ITemplateManager {
* @param array $parameters Parameters for the template
*/
public function printGuestPage(string $application, string $name, array $parameters = []): void {
$content = new Template($application, $name, $name === 'error' ? $name : 'guest');
$content = $this->getTemplate($application, $name, $name === 'error' ? $name : 'guest');
foreach ($parameters as $key => $value) {
$content->assign($key, $value);
}
@ -85,7 +85,7 @@ class TemplateManager implements ITemplateManager {
try {
// Try rendering unthemed html error page
$content = new Template('', 'error', 'error', false);
$content = $this->getTemplate('', 'error', 'error', false);
$content->assign('errors', $errors);
$content->printPage();
} catch (\Exception $e2) {
@ -113,7 +113,7 @@ class TemplateManager implements ITemplateManager {
$debug = (bool)Server::get(\OC\SystemConfig::class)->getValue('debug', false);
$serverLogsDocumentation = Server::get(\OC\SystemConfig::class)->getValue('documentation_url.server_logs', '');
$request = Server::get(IRequest::class);
$content = new Template('', 'exception', 'error', false);
$content = $this->getTemplate('', 'exception', 'error', false);
$content->assign('errorClass', get_class($exception));
$content->assign('errorMsg', $exception->getMessage());
$content->assign('errorCode', $exception->getCode());

View file

@ -1,13 +1,19 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCP\AppFramework\Http;
use OCP\AppFramework\Http;
use OCP\Server;
use OCP\Template\ITemplateManager;
/**
* Response for a normal template
@ -180,7 +186,7 @@ class TemplateResponse extends Response {
$renderAs = $this->renderAs;
}
$template = new \OCP\Template($this->appName, $this->templateName, $renderAs);
$template = Server::get(ITemplateManager::class)->getTemplate($this->appName, $this->templateName, $renderAs);
foreach ($this->params as $key => $value) {
$template->assign($key, $value);

View file

@ -8,16 +8,15 @@ declare(strict_types=1);
*/
namespace OCP\Authentication\TwoFactorAuth;
use OCP\Template;
use OCP\Template\ITemplate;
/**
* @since 17.0.0
*/
interface ILoginSetupProvider {
/**
* @return Template
*
* @since 17.0.0
* @since 32.0.0 Broader return type ITemplate instead of \OCP\Template
*/
public function getBody(): Template;
public function getBody(): ITemplate;
}

View file

@ -6,9 +6,10 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCP\Authentication\TwoFactorAuth;
use OCP\Template;
use OCP\Template\ITemplate;
/**
* Interface IPersonalProviderSettings
@ -17,9 +18,8 @@ use OCP\Template;
*/
interface IPersonalProviderSettings {
/**
* @return Template
*
* @since 15.0.0
* @since 32.0.0 Broader return type ITemplate instead of \OCP\Template
*/
public function getBody(): Template;
public function getBody(): ITemplate;
}

View file

@ -9,7 +9,7 @@ declare(strict_types=1);
namespace OCP\Authentication\TwoFactorAuth;
use OCP\IUser;
use OCP\Template;
use OCP\Template\ITemplate;
/**
* @since 9.1.0
@ -50,11 +50,9 @@ interface IProvider {
* Get the template for rending the 2FA provider view
*
* @since 9.1.0
*
* @param IUser $user
* @return Template
* @since 32.0.0 Broader return type ITemplate instead of \OCP\Template.
*/
public function getTemplate(IUser $user): Template;
public function getTemplate(IUser $user): ITemplate;
/**
* Verify the given challenge

View file

@ -22,7 +22,7 @@ use OCP\ISession;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Template;
use OCP\Template\ITemplate;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@ -115,7 +115,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
$provider->method('getId')->willReturn('myprovider');
$backupProvider = $this->createMock(IProvider::class);
$backupProvider->method('getId')->willReturn('backup_codes');
$tmpl = $this->createMock(Template::class);
$tmpl = $this->createMock(ITemplate::class);
$providerSet = new ProviderSet([$provider, $backupProvider], true);
$this->userSession->expects($this->once())
@ -399,7 +399,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
->method('getLoginSetup')
->with($user)
->willReturn($loginSetup);
$tmpl = $this->createMock(Template::class);
$tmpl = $this->createMock(ITemplate::class);
$loginSetup->expects($this->once())
->method('getBody')
->willReturn($tmpl);