/**
  * @param $mail_to
  * @param null $mail_from
  * @return bool|string
  * @throws \OCA\Owncollab_Chart\PHPMailer\phpmailerException
  */
 private function sendMail($mail_to, $mail_from = null)
 {
     $project = $this->connect->project()->get();
     if ($project['is_share'] != 1 || empty($project['share_link'])) {
         return false;
     }
     $mail_from = $mail_from === null ? 'no-replay@' . Helper::getHost() : $mail_from;
     $nameFrom = 'OwnCollab Project';
     $subject = 'OwnCollab Project Invite';
     $link = Helper::getProtocol() . '://' . Helper::getHost() . '/index.php/s/' . $project['share_link'];
     $nameTo = 'User';
     if (Helper::validEmailAddress($mail_to) && Helper::validEmailAddress($mail_from)) {
         $mail = new PHPMailer();
         $mail->setFrom($mail_from, $nameFrom);
         $mail->addAddress($mail_to, $nameTo);
         $mail->Subject = $subject;
         $mail->Body = Helper::renderPartial($this->appName, 'mailinvite', ['p_name' => $project['name'], 'u_name' => $nameTo, 's_link' => $link, 'protocol' => Helper::getProtocol(), 'domain' => Helper::getHost()]);
         $mail->isHTML();
         if ($mail->send()) {
             return true;
         } else {
             return $mail->ErrorInfo;
         }
     }
     return 'no-valid';
 }
 /**
  *
  * @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);
     }
 }
Exemplo n.º 3
0
 public function insertTask($data)
 {
     $result = null;
     $task['type'] = $data['type'] ? $data['type'] : 'task';
     $task['text'] = $data['text'];
     $task['users'] = $task['users'] ? $task['users'] : '';
     $task['start_date'] = Helper::toTimeFormat($data['start_date']);
     $task['end_date'] = Helper::toTimeFormat($data['end_date']);
     $task['open'] = 1;
     $task['parent'] = $data['parent'] ? (int) $data['parent'] : 1;
     try {
         $_result = $this->connect->insert($this->tableName, $task);
         if ($_result) {
             return $this->connect->db->lastInsertId();
         }
     } catch (\Exception $e) {
         $result = 'error:' . $e->getMessage();
     }
     return $result;
 }