public function updateRepositoryMirrors(GitRepository $repository, array $mirror_ids) { if ($this->mirror_data_mapper->doesAllSelectedMirrorIdsExist($mirror_ids) && $this->mirror_data_mapper->unmirrorRepository($repository->getId()) && $this->mirror_data_mapper->mirrorRepositoryTo($repository->getId(), $mirror_ids)) { $this->history_dao->groupAddHistory("git_repo_mirroring_update", $repository->getName(), $repository->getProjectId()); return true; } return false; }
public function revokeProjectsFromMirror(Git_Mirror_Mirror $mirror, array $project_ids) { $this->restricted_mirror_dao->revokeProjectsFromResource($mirror->id, $project_ids); $repositories = $this->mirror_data_mapper->fetchAllProjectRepositoriesForMirror($mirror, $project_ids); foreach ($repositories as $repository) { $this->mirror_data_mapper->unmirrorRepository($repository->getId()); $this->git_system_event_manager->queueRepositoryUpdate($repository); $this->history_dao->groupAddHistory("git_repo_mirroring_update", $repository->getName(), $repository->getProjectId()); } return true; }
private function updateRepositoryMirrors(GitRepository $repository, $mirror_ids) { if ($this->mirror_data_mapper->doesAllSelectedMirrorIdsExist($mirror_ids) && $this->mirror_data_mapper->unmirrorRepository($repository->getId()) && $this->mirror_data_mapper->mirrorRepositoryTo($repository->getId(), $mirror_ids)) { $this->git_system_event_manager->queueRepositoryUpdate($repository); $this->history_dao->groupAddHistory("git_repo_mirroring_update", $repository->getName(), $repository->getProjectId()); return true; } return false; }
public function updateGitAdminGroups(Project $project, PFUser $user, array $selected_group_ids) { if (!$this->checkIfProjectIsValid($project) || !$this->isUserAdmin($user, $project)) { return; } $selected_group_ids = $this->removeUndesiredUgroupsFromRequest($selected_group_ids); list($return_code, $feedback) = permission_process_selection_form($project->getId(), Git::PERM_ADMIN, $project->getID(), $selected_group_ids); if (!$return_code) { $GLOBALS['Response']->addFeedback(Feedback::ERROR, $GLOBALS['Language']->getText('plugin_git', 'view_admin_git_admins_update_feedback', $feedback)); return; } $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_git', 'view_admin_git_admins_update_feedback', $feedback)); $this->history_dao->groupAddHistory("git_admin_groups", '', $project->getID()); $this->redirectToGitHomePageIfUserIsNoMoreGitAdmin($user, $project); }
/** * Delete custom quota for a project * * @param Array $projects List of projects for which custom quota will be deleted * * @return Void */ public function deleteCustomQuota($projects) { if (empty($projects)) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_statistics', 'nothing_to_delete')); } else { $list = array(); $names = array(); $dum = new Statistics_DiskUsageManager(); $defaultQuota = $dum->getProperty('allowed_quota'); $historyDao = new ProjectHistoryDao(CodendiDataAccess::instance()); foreach ($projects as $projectId => $name) { $list[] = $projectId; $names[] = $name; $historyDao->groupAddHistory("restore_default_quota", intval($defaultQuota), $projectId); } if ($this->dao->deleteCustomQuota($list)) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_statistics', 'quota_deleted', array(join(', ', $names)))); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_statistics', 'delete_error')); } } }
public function remove_binding() { $historyDao = new ProjectHistoryDao(); if ($this->ugroup_binding->removeBinding($this->ugroup->getId())) { $historyDao->groupAddHistory("ugroup_remove_binding", $this->ugroup->getId(), $this->ugroup->getProjectId()); } $this->redirect(); }
/** * Delete a given date reminder * * @param Integer $reminderId Id of reminder * * @return Boolean */ public function deleteTrackerReminder($reminderId) { if (is_numeric($reminderId)) { $deleteReminder = $this->getDao()->deleteReminder($reminderId); if ($deleteReminder) { $historyDao = new ProjectHistoryDao(CodendiDataAccess::instance()); $historyDao->groupAddHistory("tracker_date_reminder_delete", $this->tracker->getName(), $this->tracker->getGroupId(), array("Id: " . $reminderId)); return $deleteReminder; } else { $errorMessage = $GLOBALS['Language']->getText('plugin_tracker_date_reminder', 'tracker_date_reminder_delete_failure', array($reminderId)); throw new Tracker_DateReminderException($errorMessage); } } else { $errorMessage = $GLOBALS['Language']->getText('project_admin_utils', 'tracker_date_reminder_invalid_reminder', array($reminderId)); throw new Tracker_DateReminderException($errorMessage); } }
/** * Listening to anonymous monitoring action * * @param PFUser $currentUser Current user * @param Integer $fileModuleId Id of the package * @param Boolean $anonymous Anonymous monitoring flag * @param Integer $groupId Id of the project * * @return Boolean */ private function anonymousMonitoringActionListener($currentUser, $fileModuleId, $anonymous, $groupId) { $performAction = false; if ($anonymous && (!$this->isMonitoring($fileModuleId, $currentUser, false) || $this->isMonitoring($fileModuleId, $currentUser, $anonymous))) { $performAction = true; } elseif (!$anonymous && !$this->isMonitoring($fileModuleId, $currentUser, !$anonymous)) { $performAction = true; $historyDao = new ProjectHistoryDao(); $historyDao->groupAddHistory("frs_self_add_monitor_package", $fileModuleId, $groupId); } if ($performAction) { $this->stopMonitor($fileModuleId, $currentUser); $result = $this->setMonitor($fileModuleId, $currentUser, $anonymous); if (!$result) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_filemodule_monitor', 'insert_err')); } else { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_filemodule_monitor', 'p_monitored')); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_filemodule_monitor', 'now_emails')); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_filemodule_monitor', 'turn_monitor_off'), CODENDI_PURIFIER_LIGHT); } } return $performAction; }
/** * 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($artifact); // 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']); } }
/** * Export project history to a csv file * * @param Integer $group_id Id of the project * @param String $event Events category used to filter results * @param String $subEventsBox Event used to filter results * @param String $value Value used to filter results * @param Integer $startDate Start date used to filter results * @param Integer $endDate End date used to filter results * @param String $by User name used to filter results * * @return void */ function export_grouphistory($group_id, $event = null, $subEventsBox = null, $value = null, $startDate = null, $endDate = null, $by = null) { global $Language; header('Content-Type: text/csv'); header('Content-Disposition: filename=project_history.csv'); $eol = "\n"; $col_list = array('event', 'val', 'date', 'by'); $documents_title = array('event' => $Language->getText('project_admin_utils', 'event'), 'val' => $Language->getText('project_admin_utils', 'val'), 'date' => $Language->getText('project_admin_utils', 'date'), 'by' => $Language->getText('global', 'by')); echo build_csv_header($col_list, $documents_title) . $eol; $dao = new ProjectHistoryDao(CodendiDataAccess::instance()); $history_filter = build_grouphistory_filter($event, $subEventsBox, $value, $startDate, $endDate, $by); $res = $dao->groupGetHistory(0, 0, $group_id, $history_filter); if ($res['numrows'] > 0) { echo displayProjectHistoryResults($group_id, $res, true); } echo build_csv_header($col_list, array()) . $eol; }