diff --git a/appinfo/routes.php b/appinfo/routes.php index 53d6cedc0..363d2f816 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -21,7 +21,6 @@ return [ 'routes' => [ - ['name' => 'Wizard#show', 'url' => '/wizard', 'verb' => 'GET'], ['name' => 'Wizard#disable', 'url' => '/wizard', 'verb' => 'DELETE'], ], ]; diff --git a/lib/Controller/WizardController.php b/lib/Controller/WizardController.php index b82ed7575..1cf253e2c 100644 --- a/lib/Controller/WizardController.php +++ b/lib/Controller/WizardController.php @@ -21,48 +21,20 @@ namespace OCA\FirstRunWizard\Controller; -use OCA\FirstRunWizard\AppInfo\Application; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataResponse; -use OCP\AppFramework\Http\JSONResponse; -use OCP\Defaults; use OCP\IConfig; -use OCP\IGroupManager; use OCP\IRequest; class WizardController extends Controller { - /** @var IConfig */ - protected $config; - - /** @var string */ - protected $userId; - - /** @var Defaults */ - protected $theming; - - /** @var IGroupManager */ - protected $groupManager; - - /** @var array|false|string[] */ - protected $slides = []; - - /** - * @param string $appName - * @param IRequest $request - * @param IConfig $config - * @param string $userId - * @param Defaults $theming - */ - public function __construct($appName, IRequest $request, IConfig $config, $userId, Defaults $theming, IGroupManager $groupManager) { + public function __construct( + string $appName, + IRequest $request, + private ?string $userId, + private IConfig $config, + ) { parent::__construct($appName, $request); - - $this->config = $config; - $this->userId = $userId; - $this->theming = $theming; - $this->groupManager = $groupManager; - - $this->slides = explode(',', $this->config->getAppValue(Application::APP_ID, 'slides', 'video,values,apps,clients,final')); } /** @@ -73,55 +45,4 @@ public function disable() { $this->config->setUserValue($this->userId, 'firstrunwizard', 'show', '0'); return new DataResponse(); } - - /** - * @NoAdminRequired - * @return JsonResponse - */ - public function show() { - $appStore = $this->config->getSystemValue('appstoreenabled', true); - - $data = [ - 'desktop' => $this->config->getSystemValue('customclient_desktop', $this->theming->getSyncClientUrl()), - 'android' => $this->config->getSystemValue('customclient_android', $this->theming->getAndroidClientUrl()), - 'fdroid' => $this->config->getSystemValue('customclient_fdroid', $this->theming->getFDroidClientUrl()), - 'ios' => $this->config->getSystemValue('customclient_ios', $this->theming->getiOSClientUrl()), - 'appStore' => $appStore, - 'useTLS' => $this->request->getServerProtocol() === 'https', - 'macOSProfile' => \OCP\Util::linkToRemote('dav') . 'provisioning/apple-provisioning.mobileconfig', - ]; - - $slides = []; - - $slides[] = $this->staticSlide('page.values', $data); - if ($appStore && $this->groupManager->isAdmin($this->userId)) { - $slides[] = $this->staticSlide('page.apps', $data); - } - $slides[] = $this->staticSlide('page.clients', $data); - $slides[] = $this->staticSlide('page.final', $data); - - return new JSONResponse([ - 'hasVideo' => in_array('video', $this->slides, true), - 'slides' => array_values(array_filter($slides, function ($slide) { - return $slide !== null; - })) - ]); - } - - public function staticSlide($name, $params) { - if (!in_array(substr($name, 5), $this->slides, true)) { - return null; - } - - $template = new \OCP\Template($this->appName, $name, ''); - - foreach ($params as $key => $value) { - $template->assign($key, $value); - } - - return [ - 'type' => 'inline', - 'content' => $template->fetchPage($params) - ]; - } } diff --git a/tests/AppInfo/RoutesTest.php b/tests/AppInfo/RoutesTest.php index f2c9a8bf8..6abdce6d8 100644 --- a/tests/AppInfo/RoutesTest.php +++ b/tests/AppInfo/RoutesTest.php @@ -38,7 +38,6 @@ public function testRoutes() { $this->assertArrayHasKey('routes', $routes); $this->assertIsArray($routes['routes']); $this->assertSame([ - ['name' => 'Wizard#show', 'url' => '/wizard', 'verb' => 'GET'], ['name' => 'Wizard#disable', 'url' => '/wizard', 'verb' => 'DELETE'], ], $routes['routes']); } diff --git a/tests/Controller/WizardControllerTest.php b/tests/Controller/WizardControllerTest.php index 433baaf25..fe94a38db 100644 --- a/tests/Controller/WizardControllerTest.php +++ b/tests/Controller/WizardControllerTest.php @@ -23,13 +23,10 @@ namespace OCA\FirstRunWizard\Tests\Controller; -use OCA\FirstRunWizard\AppInfo\Application; use OCA\FirstRunWizard\Controller\WizardController; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; -use OCP\Defaults; use OCP\IConfig; -use OCP\IGroupManager; use OCP\IRequest; use Test\TestCase; @@ -42,12 +39,10 @@ class WizardControllerTest extends TestCase { /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ protected $config; - private $groupManager; protected function setUp(): void { parent::setUp(); $this->config = $this->createMock(IConfig::class); - $this->groupManager = $this->createMock(IGroupManager::class); } /** @@ -58,10 +53,8 @@ protected function getController($user = 'test') { return new WizardController( 'firstrunwizard', $this->createMock(IRequest::class), - $this->config, $user, - \OC::$server->query(Defaults::class), - $this->groupManager + $this->config, ); } @@ -77,27 +70,15 @@ public function dataDisable() { * @param string $user */ public function testDisable($user) { - $this->config->expects($this->once()) - ->method('getAppValue') - ->with(Application::APP_ID, 'slides', 'video,values,apps,clients,final') - ->willReturnArgument(2); - $controller = $this->getController($user); $this->config->expects($this->once()) ->method('setUserValue') - ->with($user, 'firstrunwizard', 'show', 0); + ->with($user, 'firstrunwizard', 'show', '0'); $response = $controller->disable(); $this->assertInstanceOf(DataResponse::class, $response); $this->assertSame(Http::STATUS_OK, $response->getStatus()); } - - public function dataShowAdmin(): array { - return [ - 'app store enabled' => [true, 4], - 'app store disabled' => [false, 3] - ]; - } }