/**
  *
  * @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);
     }
 }