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