예제 #1
0
 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;
 }
예제 #3
0
 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;
 }
예제 #4
0
 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);
 }
예제 #5
0
 /**
  * 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'));
         }
     }
 }
예제 #6
0
 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']);
     }
 }
예제 #10
0
/**
 * 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;
}