private function doesUserCanViewArtifact(PFUser $user, Codendi_Request $request)
 {
     if (!$this->artifact->userCanView($user)) {
         $this->sendResponse($request, 'error', $GLOBALS['Language']->getText('plugin_tracker_artifact', 'request_not_valid'), null);
         return false;
     }
     return true;
 }
Ejemplo n.º 2
0
 private function checkUserCanViewArtifact(Tracker_Artifact $artifact, PFUser $user)
 {
     if (!$artifact->userCanView($user)) {
         throw new SoapFault(get_artifact_fault, 'Permission Denied: you cannot access this artifact');
     }
     $tracker = $artifact->getTracker();
     if (!$tracker) {
         throw new SoapFault(get_tracker_factory_fault, 'Could Not Get Tracker', 'getArtifact');
     }
     $this->getProjectById($tracker->getProject()->getGroupId(), 'getArtifact');
     $this->checkUserCanViewTracker($tracker, $user);
 }
 /**
  * Send reminder
  *
  * @param Tracker_DateReminder $reminder Reminder that will send notifications
  * @param Tracker_Artifact     $artifact Artifact for which reminders will be sent
  *
  * @return Void
  */
 protected function sendReminderNotification(Tracker_DateReminder $reminder, Tracker_Artifact $artifact)
 {
     $tracker = $this->getTracker();
     // 1. Get the recipients list
     $recipients = $reminder->getRecipients();
     // 2. Compute the body of the message + headers
     $messages = array();
     foreach ($recipients as $recipient) {
         if ($recipient && $artifact->userCanView($recipient) && $reminder->getField()->userCanRead($recipient)) {
             $this->buildMessage($reminder, $artifact, $messages, $recipient);
         }
     }
     // 3. Send the notification
     foreach ($messages as $m) {
         $historyDao = new ProjectHistoryDao(CodendiDataAccess::instance());
         $historyDao->groupAddHistory("tracker_date_reminder_sent", $this->tracker->getName() . ":" . $reminder->getField()->getId(), $this->tracker->getGroupId(), $m['recipients']);
         $this->sendReminder($artifact, $m['recipients'], $m['headers'], $m['subject'], $m['htmlBody'], $m['txtBody']);
     }
 }