1<?php 2 3 4namespace OCA\Appointments\Controller; 5 6use OC_Util; 7use OCA\Appointments\Backend\BackendManager; 8use OCA\Appointments\Backend\BackendUtils; 9use OCP\AppFramework\Controller; 10use OCP\AppFramework\Http\TemplateResponse; 11use OCP\IConfig; 12use OCP\IRequest; 13 14class DebugController extends Controller 15{ 16 private $userId; 17 private $config; 18 private $utils; 19 /** @var \OCA\Appointments\Backend\IBackendConnector $bc */ 20 private $bc; 21 22 public function __construct($AppName, 23 IRequest $request, 24 $UserId, 25 IConfig $config, 26 BackendUtils $utils, 27 BackendManager $backendManager) { 28 parent::__construct($AppName, $request); 29 $this->userId = $UserId; 30 $this->config = $config; 31 $this->utils = $utils; 32 /** @noinspection PhpUnhandledExceptionInspection */ 33 $this->bc = $backendManager->getConnector(); 34 } 35 36 /** 37 * @NoAdminRequired 38 */ 39 function settingsDump() { 40 41 $keys = [ 42 BackendUtils::KEY_ORG, 43 BackendUtils::KEY_EML, 44 BackendUtils::KEY_CLS, 45 BackendUtils::KEY_PSN, 46 BackendUtils::KEY_MPS_COL, 47 BackendUtils::KEY_PAGES, 48 BackendUtils::KEY_DIR, 49 BackendUtils::KEY_REMINDERS, 50 BackendUtils::KEY_TALK, 51 BackendUtils::KEY_FORM_INPUTS_JSON, 52 BackendUtils::KEY_FORM_INPUTS_HTML, 53 BackendUtils::KEY_USE_DEF_EMAIL, 54 BackendUtils::KEY_EMAIL_FIX, 55 BackendUtils::KEY_TMPL_INFO, 56 BackendUtils::KEY_TMPL_DATA, 57 ]; 58 59 $data = '<strong>Nextcloud Version</strong>: ' . OC_Util::getVersionString() . "\n" 60 . '<strong>Appointments Version</strong>: ' . $this->config->getAppValue($this->appName, 'installed_version', "N/A") . "\n" 61 . '<strong>Time zone</strong>: ' . $this->utils->getUserTimezone($this->userId, $this->config)->getName() . " (" 62 . "calendar: " . $this->config->getUserValue($this->userId, 'calendar', 'timezone', "N/A") . ", " 63 . "core: " . $this->config->getUserValue($this->userId, 'core', 'timezone', "N/A") . ")\n" 64 . '<strong>Key</strong>: ' . ($this->config->getUserValue($this->userId, $this->appName, "cnk") !== "" ? "Yes" : "No") . "\n\n"; 65 66 foreach ($keys as $k) { 67 $data .= '<strong>' . $k . '</strong>: ' . var_export($this->utils->getUserSettings( 68 $k, $this->userId), true); 69 $data .= "\n\n"; 70 } 71 $tr = new TemplateResponse($this->appName, 'settings_dump', [], "base"); 72 $params['data'] = $data; 73 $tr->setParams($params); 74 return $tr; 75 } 76 77 function getRawCalendarData() { 78 $data = ""; 79 $status = 400; 80 81 $calInfoStr = $this->request->getParam("cal_info"); 82 if ($calInfoStr !== null) { 83 $calInfo = json_decode($calInfoStr, true); 84 if ($calInfo !== null && isset($calInfo["id"]) && isset($calInfo["isSubscription"])) { 85 86 $calData = var_export($calInfo, true) . '<br>'; 87 88 $d = $this->bc->getRawCalData($calInfo, $this->userId); 89 90 $data = $calData . '<br>' . var_export($d, true); 91 $status = 200; 92 } 93 } 94 95 $tr = new TemplateResponse($this->appName, 'settings_dump', [], "base"); 96 $tr->setParams(['data' => $data]); 97 $tr->setStatus($status); 98 return $tr; 99 100 } 101 102}