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; }
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']); } }