/** * * @PublicPage * @NoAdminRequired * @NoCSRFRequired * * @param $share * @return TemplateResponse */ public function publicChart($share) { $project = $this->connect->project()->getShare($share); $params = ['template' => 'guest', 'protected' => false, 'wrongpw' => false, 'requesttoken' => false]; if ($project['open'] == 1 && $project['is_share'] == 1) { // static requesttoken $params['requesttoken'] = md5($project['share_password'] . md5($project['share_link'])); // share time is over if ($project['share_is_expire'] == '1' && strtotime($project['share_expire_time']) < time()) { $params['protected'] = true; $params['template'] = 'guest'; } else { // $session_publickey = Helper::session('publickey'); if (!empty($session_publickey) && $session_publickey == $params['requesttoken']) { $params['template'] = 'project'; } else { if ($project['share_is_protected'] == 1) { $post_requesttoken = Helper::get('requesttoken'); $post_password = Helper::get('password'); $params['protected'] = true; $params['template'] = 'authenticate'; if ($post_requesttoken == $params['requesttoken'] && md5($post_password) == $project['share_password']) { Helper::session('publickey', $params['requesttoken']); $params['template'] = 'project'; } else { if (!empty($post_password)) { $params['wrongpw'] = true; } } } else { $params['template'] = 'project'; } } } } if ($params['template'] == 'guest') { $template = new \OCP\Template('', '404', 'guest'); $template->printPage(); exit; } if ($params['template'] == 'authenticate') { return new TemplateResponse($this->appName, 'authenticate', ['wrongpw' => $params['wrongpw'], 'requesttoken' => $params['requesttoken']], 'guest'); } if ($params['template'] == 'project') { unset($project['is_share']); unset($project['share_link']); unset($project['share_is_protected']); unset($project['share_password']); unset($project['share_is_expire']); unset($project['share_expire_time']); $jsonData = ['project' => $project, 'tasks' => $this->connect->task()->get(), 'links' => $this->connect->link()->get()]; $params = ['current_user' => null]; return new TemplateResponse($this->appName, 'main', $params); } }