Example #1
0
function checkInactiveProjects()
{
    $report_message = '';
    $db = new Database();
    $sql_inactive_projects = "\n        SELECT w.project_id, p.name, p.contact_info, u.nickname, MAX(status_changed) AS last_change\n        FROM " . WORKLIST . " AS w\n        INNER JOIN " . PROJECTS . " AS p ON w.project_id=p.project_id\n        LEFT JOIN " . USERS . " AS u ON u.id=p.owner_id\n        WHERE p.active = 1 OR 1\n        GROUP BY w.project_id HAVING last_change < DATE_SUB(NOW(), INTERVAL 90 DAY)\n        ORDER BY p.name ASC";
    // Delete accounts which exists for at least 45 days and never have been used.
    $result = $db->query($sql_inactive_projects);
    while ($row = mysql_fetch_assoc($result)) {
        $project = new Project($row['project_id']);
        // send email
        $data = array('owner' => $row['nickname'], 'projectUrl' => Project::getProjectUrl($row['project_id']), 'projectName' => $row['name']);
        if (!Utils::sendTemplateEmail($row['contact_info'], 'project-inactive', $data)) {
            $report_message .= ' <p> Ok ---';
        } else {
            $report_message .= ' <p> Fail -';
        }
        $report_message .= ' Project (' . $row['project_id'] . ')- <a href="' . Project::getProjectUrl($row['project_id']) . '">' . $row['name'] . '</a> -- Last changed status: ' . $row['last_change'] . '</p>';
        $project->setActive(0);
        $project->save();
    }
    // Send report to ops if any project was set as inactive
    if ($report_message != '') {
        $headers['From'] = DEFAULT_SENDER;
        $subject = "Inactive Projects Report";
        $body = $report_message;
        if (!Utils::send_email(OPS_EMAIL, $subject, $body, null, $headers)) {
            error_log('checkActiveProjects cron: Failed to send email report');
        }
    }
}
Example #2
0
         }
     }
 }
 /// proceed submission
 // proceed for $title
 $object->setTitle($title);
 // proceed for $password
 $object->setPassword($password);
 // proceed for $email
 $object->setEmail($email);
 // proceed for $description_en
 $object->setDescriptionEn($description_en);
 // proceed for $description_zh
 $object->setDescriptionZh($description_zh);
 // proceed for $active
 $object->setActive($active);
 // proceed for $price
 if (!empty($price)) {
     $object->setPrice($price);
 }
 // proceed for $images
 $object->setImages($images);
 // proceed for $thumbnail
 $object->setThumbnail($thumbnail);
 // proceed for $date
 $object->setDate($date / 1000);
 // proceed for $attachment
 $files = explode("\n", trim($attachment));
 $rtn = array();
 foreach ($files as $file) {
     $file = trim($file);
Example #3
0
 public function add($name)
 {
     $this->view = null;
     try {
         $user = User::find(Session::uid());
         if (!$user->getId() || !$user->getIs_admin()) {
             throw new Exception('Action not allowed.');
         }
         if (!preg_match('/^\\d*[-a-zA-Z][-a-zA-Z0-9]*$/', $name)) {
             throw new Exception('The name of the project can only contain alphanumeric characters plus dashes and must have 1 alpha character at least');
         }
         try {
             $project = Project::find($name);
         } catch (Exception $e) {
         }
         if (is_object($project) && $project->getProjectId($name)) {
             throw new Exception('Project with the same name already exists!');
         }
         $file = new File();
         $logo = '';
         if (!empty($_POST['logo'])) {
             $file->findFileById($_POST['logo']);
             $logo = basename($file->getUrl());
         }
         $project = new Project();
         $project->setName($name);
         $project->setDescription($_POST['description']);
         $project->setWebsite($_POST['website']);
         $project->setContactInfo($user->getUsername());
         $project->setOwnerId($user->getId());
         $project->setActive(true);
         $project->setInternal(true);
         $project->setRequireSandbox(true);
         $project->setLogo($logo);
         $project->setRepo_type('git');
         $project->setRepository($_POST['github_repo_url']);
         $project->setGithubId($_POST['github_client_id']);
         $project->setGithubSecret($_POST['github_client_secret']);
         $project->save();
         if ($file->getId()) {
             $file->setProjectId($project->getProjectId());
             $file->save();
         }
         $journal_message = '@' . $user->getNickname() . ' added project *' . $name . '*';
         Utils::systemNotification($journal_message);
         echo json_encode(array('success' => true, 'message' => $journal_message));
     } catch (Exception $e) {
         $error = $e->getMessage();
         echo json_encode(array('success' => false, 'message' => $error));
     }
 }