. */ namespace OCA\SideMenu\Controller; use OCA\SideMenu\AppInfo\Application; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataDownloadResponse; use OCP\AppFramework\Http\RedirectResponse; use OCP\AppFramework\Http\Response; use OCP\IConfig; use OCP\IRequest; use OCP\IURLGenerator; class AdminSettingController extends Controller { /** * @var IConfig */ protected $config; /** * @var IURLGenerator */ protected $urlGenerator; public function __construct($appName, IRequest $request, IConfig $config, IURLGenerator $urlGenerator) { parent::__construct($appName, $request); $this->config = $config; $this->urlGenerator = $urlGenerator; } /** * @NoCSRFRequired * * @return RedirectResponse */ public function removeCache() { $this->config->setAppValue(Application::APP_ID, 'cache-categories', '[]'); return new RedirectResponse($this->urlGenerator->linkToRoute('settings.AdminSettings.index', [ 'section' => Application::APP_ID, ]).'#more'); } /** * @NoCSRFRequired * * @return Response */ public function exportConfiguration() { $keys = $this->config->getAppKeys(Application::APP_ID); $config = []; $excludedKeys = [ 'cache', 'cache-categories', ]; foreach ($keys as $key) { if (in_array($key, $excludedKeys)) { continue; } $config[$key] = $this->config->getAppValue(Application::APP_ID, $key); } return new DataDownloadResponse( json_encode($config, JSON_PRETTY_PRINT), 'config.json', 'text/json' ); } }