mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #55177 from nextcloud/fix/systemtags-admin-initial-state
fix(systemtags): Provide initial state for admin restriction setting
This commit is contained in:
commit
47ced2b6a7
2 changed files with 48 additions and 1 deletions
|
|
@ -6,16 +6,28 @@
|
|||
*/
|
||||
namespace OCA\SystemTags\Settings;
|
||||
|
||||
use OCA\SystemTags\AppInfo\Application;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Services\IInitialState;
|
||||
use OCP\IAppConfig;
|
||||
use OCP\Settings\ISettings;
|
||||
use OCP\Util;
|
||||
|
||||
class Admin implements ISettings {
|
||||
|
||||
public function __construct(
|
||||
private IAppConfig $appConfig,
|
||||
private IInitialState $initialStateService,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TemplateResponse
|
||||
*/
|
||||
public function getForm() {
|
||||
$restrictSystemTagsCreationToAdmin = $this->appConfig->getValueBool(Application::APP_ID, 'restrict_creation_to_admin', false);
|
||||
$this->initialStateService->provideInitialState('restrictSystemTagsCreationToAdmin', $restrictSystemTagsCreationToAdmin);
|
||||
|
||||
Util::addScript('systemtags', 'admin');
|
||||
return new TemplateResponse('systemtags', 'admin', [], '');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,19 +8,54 @@ namespace OCA\SystemTags\Tests\Settings;
|
|||
|
||||
use OCA\SystemTags\Settings\Admin;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Services\IInitialState;
|
||||
use OCP\IAppConfig;
|
||||
use Test\TestCase;
|
||||
|
||||
class AdminTest extends TestCase {
|
||||
/** @var Admin */
|
||||
private $admin;
|
||||
/** @var IAppConfig|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $appConfig;
|
||||
/** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $initialState;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$this->admin = new Admin();
|
||||
$this->appConfig = $this->createMock(IAppConfig::class);
|
||||
$this->initialState = $this->createMock(IInitialState::class);
|
||||
|
||||
$this->admin = new Admin(
|
||||
$this->appConfig,
|
||||
$this->initialState
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetForm(): void {
|
||||
$this->appConfig->expects($this->once())
|
||||
->method('getValueBool')
|
||||
->with('systemtags', 'restrict_creation_to_admin', false)
|
||||
->willReturn(false);
|
||||
|
||||
$this->initialState->expects($this->once())
|
||||
->method('provideInitialState')
|
||||
->with('restrictSystemTagsCreationToAdmin', false);
|
||||
|
||||
$expected = new TemplateResponse('systemtags', 'admin', [], '');
|
||||
$this->assertEquals($expected, $this->admin->getForm());
|
||||
}
|
||||
|
||||
public function testGetFormWithRestrictedCreation(): void {
|
||||
$this->appConfig->expects($this->once())
|
||||
->method('getValueBool')
|
||||
->with('systemtags', 'restrict_creation_to_admin', false)
|
||||
->willReturn(true);
|
||||
|
||||
$this->initialState->expects($this->once())
|
||||
->method('provideInitialState')
|
||||
->with('restrictSystemTagsCreationToAdmin', true);
|
||||
|
||||
$expected = new TemplateResponse('systemtags', 'admin', [], '');
|
||||
$this->assertEquals($expected, $this->admin->getForm());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue