public function execute(HTTPRequestCustom $request)
 {
     $id = $request->get_getint('id', 0);
     if (!empty($id) && AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) {
         try {
             $this->downloadfile = DownloadService::get_downloadfile('WHERE download.id = :id', array('id' => $id));
         } catch (RowNotFoundException $e) {
             $error_controller = PHPBoostErrors::unexisting_page();
             DispatchManager::redirect($error_controller);
         }
     }
     if ($this->downloadfile !== null && $this->downloadfile->is_visible()) {
         if (!PersistenceContext::get_querier()->row_exists(PREFIX . 'events', 'WHERE id_in_module=:id_in_module AND module=\'download\' AND current_status = 0', array('id_in_module' => $this->downloadfile->get_id()))) {
             $contribution = new Contribution();
             $contribution->set_id_in_module($this->downloadfile->get_id());
             $contribution->set_entitled(StringVars::replace_vars(LangLoader::get_message('contribution.deadlink', 'common'), array('link_name' => $this->downloadfile->get_name())));
             $contribution->set_fixing_url(DownloadUrlBuilder::edit($this->downloadfile->get_id())->relative());
             $contribution->set_description(LangLoader::get_message('contribution.deadlink_explain', 'common'));
             $contribution->set_poster_id(AppContext::get_current_user()->get_id());
             $contribution->set_module('download');
             $contribution->set_type('alert');
             $contribution->set_auth(Authorizations::capture_and_shift_bit_auth(DownloadService::get_categories_manager()->get_heritated_authorizations($this->downloadfile->get_id_category(), Category::MODERATION_AUTHORIZATIONS, Authorizations::AUTH_CHILD_PRIORITY), Category::MODERATION_AUTHORIZATIONS, Contribution::CONTRIBUTION_AUTH_BIT));
             ContributionService::save_contribution($contribution);
         }
         DispatchManager::redirect(new UserContributionSuccessController());
     } else {
         $error_controller = PHPBoostErrors::unexisting_page();
         DispatchManager::redirect($error_controller);
     }
 }
 private function contribution_actions(DownloadFile $downloadfile, $id)
 {
     if ($downloadfile->get_id() === null) {
         if ($this->is_contributor_member()) {
             $contribution = new Contribution();
             $contribution->set_id_in_module($id);
             $contribution->set_description(stripslashes($this->form->get_value('contribution_description')));
             $contribution->set_entitled($downloadfile->get_name());
             $contribution->set_fixing_url(DownloadUrlBuilder::edit($id)->relative());
             $contribution->set_poster_id(AppContext::get_current_user()->get_id());
             $contribution->set_module('download');
             $contribution->set_auth(Authorizations::capture_and_shift_bit_auth(DownloadService::get_categories_manager()->get_heritated_authorizations($downloadfile->get_id_category(), Category::MODERATION_AUTHORIZATIONS, Authorizations::AUTH_CHILD_PRIORITY), Category::MODERATION_AUTHORIZATIONS, Contribution::CONTRIBUTION_AUTH_BIT));
             ContributionService::save_contribution($contribution);
         }
     } else {
         $corresponding_contributions = ContributionService::find_by_criteria('download', $id);
         if (count($corresponding_contributions) > 0) {
             $downloadfile_contribution = $corresponding_contributions[0];
             $downloadfile_contribution->set_status(Event::EVENT_STATUS_PROCESSED);
             ContributionService::save_contribution($downloadfile_contribution);
         }
     }
     $downloadfile->set_id($id);
 }
示例#3
0
    $entitled = retrieve(POST, 'entitled', '', TSTRING_UNCHANGE);
    $description = stripslashes(retrieve(POST, 'contents', '', TSTRING_PARSE));
    $status = retrieve(POST, 'status', Event::EVENT_STATUS_UNREAD);
    //Si le titre n'est pas vide
    if (!empty($entitled)) {
        //Mise à jour de l'objet contribution
        $contribution->set_entitled($entitled);
        $contribution->set_description($description);
        //Changement de statut ? On regarde si la contribution a été réglée
        if ($status == Event::EVENT_STATUS_PROCESSED && $contribution->get_status() != Event::EVENT_STATUS_PROCESSED) {
            $contribution->set_fixer_id(AppContext::get_current_user()->get_id());
            $contribution->set_fixing_date(new Date());
        }
        $contribution->set_status($status);
        //Enregistrement en base de données
        ContributionService::save_contribution($contribution);
        AppContext::get_response()->redirect(UserUrlBuilder::contribution_panel($contribution->get_id()));
    } else {
        AppContext::get_response()->redirect(UserUrlBuilder::contribution_panel());
    }
} elseif ($id_to_delete > 0) {
    //Vérification de la validité du jeton
    AppContext::get_session()->csrf_get_protect();
    $contribution = new Contribution();
    //Loading the contribution into an object from the database and checking if the user is authorizes to read it
    if (($contribution = ContributionService::find_by_id($id_to_delete)) == null || !AppContext::get_current_user()->check_auth($contribution->get_auth(), Contribution::CONTRIBUTION_AUTH_BIT)) {
        $error_controller = PHPBoostErrors::unexisting_page();
        DispatchManager::redirect($error_controller);
    }
    ContributionService::delete_contribution($contribution);
    AppContext::get_response()->redirect(UserUrlBuilder::contribution_panel());
示例#4
0
 function Solve_alert_topic($id_alert)
 {
     PersistenceContext::get_querier()->update(PREFIX . "forum_alerts", array('status' => 1, 'idmodo' => AppContext::get_current_user()->get_id()), 'WHERE id = :id', array('id' => $id_alert));
     //Insertion de l'action dans l'historique.
     forum_history_collector(H_SOLVE_ALERT, 0, 'moderation_forum.php?action=alert&id=' . $id_alert, '', '&');
     //Si la contribution associée n'est pas réglée, on la règle
     $corresponding_contributions = ContributionService::find_by_criteria('forum', $id_alert, 'alert');
     if (count($corresponding_contributions) > 0) {
         $file_contribution = $corresponding_contributions[0];
         //The contribution is now processed
         $file_contribution->set_status(Event::EVENT_STATUS_PROCESSED);
         //We save the contribution
         ContributionService::save_contribution($file_contribution);
     }
 }
示例#5
0
        Feed::clear_cache('media');
        AppContext::get_response()->redirect('media' . url('.php?id=' . $media['idedit']));
    } elseif (!$media['idedit'] && (($auth_write = MediaAuthorizationsService::check_authorizations($media['idcat'])->write()) || MediaAuthorizationsService::check_authorizations($media['idcat'])->contribution())) {
        $result = PersistenceContext::get_querier()->insert(PREFIX . "media", array('idcat' => $media['idcat'], 'iduser' => AppContext::get_current_user()->get_id(), 'timestamp' => time(), 'name' => $media['name'], 'contents' => FormatingHelper::strparse($media['contents']), 'url' => $media['url'], 'mime_type' => $media['mime_type'], 'infos' => MediaAuthorizationsService::check_authorizations($media['idcat'])->write() ? MEDIA_STATUS_APROBED : 0, 'width' => $media['width'], 'height' => $media['height']));
        $new_id_media = $result->get_last_inserted_id();
        // Feeds Regeneration
        Feed::clear_cache('media');
        if (!$auth_write) {
            $media_contribution = new Contribution();
            $media_contribution->set_id_in_module($new_id_media);
            $media_contribution->set_description(stripslashes($media['counterpart']));
            $media_contribution->set_entitled($media['name']);
            $media_contribution->set_fixing_url('/media/media_action.php?edit=' . $new_id_media);
            $media_contribution->set_poster_id(AppContext::get_current_user()->get_id());
            $media_contribution->set_module('media');
            $media_contribution->set_auth(Authorizations::capture_and_shift_bit_auth(MediaService::get_categories_manager()->get_heritated_authorizations($media['idcat'], Category::MODERATION_AUTHORIZATIONS, Authorizations::AUTH_CHILD_PRIORITY), Category::MODERATION_AUTHORIZATIONS, Contribution::CONTRIBUTION_AUTH_BIT));
            ContributionService::save_contribution($media_contribution);
            DispatchManager::redirect(new UserContributionSuccessController());
        } else {
            AppContext::get_response()->redirect('media' . url('.php?id=' . $new_id_media));
        }
    } else {
        $error_controller = PHPBoostErrors::user_not_authorized();
        DispatchManager::redirect($error_controller);
    }
} else {
    $error_controller = PHPBoostErrors::unexisting_page();
    DispatchManager::redirect($error_controller);
}
$tpl->display();
require_once '../kernel/footer.php';
示例#6
0
 function Solve_alert_topic($id_alert)
 {
     global $Sql, $User;
     $Sql->query_inject("UPDATE " . PREFIX . "forum_alerts SET status = 1, idmodo = '" . $User->get_attribute('user_id') . "' WHERE id = '" . $id_alert . "'", __LINE__, __FILE__);
     forum_history_collector(H_SOLVE_ALERT, 0, 'moderation_forum.php?action=alert&id=' . $id_alert, '', '&');
     import('events/contribution');
     import('events/contribution_service');
     $corresponding_contributions = ContributionService::find_by_criteria('forum', $id_alert, 'alert');
     if (count($corresponding_contributions) > 0) {
         $file_contribution = $corresponding_contributions[0];
         $file_contribution->set_status(EVENT_STATUS_PROCESSED);
         ContributionService::save_contribution($file_contribution);
     }
 }
示例#7
0
         import('util/url');
         $file_relative_url = new Url($file_url);
         $Sql->query_inject("INSERT INTO " . PREFIX . "download (title, idcat, url, size, count, force_download, contents, short_contents, image, timestamp, release_timestamp, start, end, visible, approved, users_note) " . "VALUES ('" . $file_title . "', '" . $file_cat_id . "', '" . $file_relative_url->relative() . "', '" . $file_size . "', '" . $file_hits . "', '" . ($file_download_method == 'force_download' ? DOWNLOAD_FORCE_DL : DOWNLOAD_REDIRECT) . "', '" . strparse($file_contents) . "', '" . strparse($file_short_contents) . "', '" . $file_image . "', '" . $file_creation_date->get_timestamp() . "', '" . ($ignore_release_date ? 0 : $file_release_date->get_timestamp()) . "', '" . $start_timestamp . "', '" . $end_timestamp . "', '" . $visible . "', '" . (int) $auth_write . "', '')", __LINE__, __FILE__);
         $new_id_file = $Sql->insert_id("SELECT MAX(id) FROM " . PREFIX . "download");
         if (!$auth_write) {
             import('events/contribution');
             import('events/contribution_service');
             $download_contribution = new Contribution();
             $download_contribution->set_id_in_module($new_id_file);
             $download_contribution->set_description(stripslashes($contribution_counterpart));
             $download_contribution->set_entitled(sprintf($DOWNLOAD_LANG['contribution_entitled'], $file_title));
             $download_contribution->set_fixing_url('/download/management.php?edit=' . $new_id_file);
             $download_contribution->set_poster_id($User->get_attribute('user_id'));
             $download_contribution->set_module('download');
             $download_contribution->set_auth(Authorizations::capture_and_shift_bit_auth(Authorizations::merge_auth($CONFIG_DOWNLOAD['global_auth'], $download_categories->compute_heritated_auth($file_cat_id, DOWNLOAD_WRITE_CAT_AUTH_BIT, AUTH_CHILD_PRIORITY), DOWNLOAD_WRITE_CAT_AUTH_BIT, AUTH_CHILD_PRIORITY), DOWNLOAD_WRITE_CAT_AUTH_BIT, CONTRIBUTION_AUTH_BIT));
             ContributionService::save_contribution($download_contribution);
             redirect(HOST . DIR . '/download/contribution.php');
         }
         $download_categories->Recount_sub_files();
         import('content/syndication/feed');
         Feed::clear_cache('download');
         redirect(HOST . DIR . '/download/' . url('download.php?id=' . $new_id_file, 'download-' . $new_id_file . '+' . url_encode_rewrite($file_title) . '.php'));
     } else {
         redirect(HOST . DIR . '/download/' . url('download.php'));
     }
 } elseif ($preview) {
     $contribution_counterpart_source = strprotect(retrieve(POST, 'counterpart', '', TSTRING_AS_RECEIVED), HTML_PROTECT, ADDSLASHES_NONE);
     $begining_calendar = new MiniCalendar('begining_date');
     $begining_calendar->set_date($begining_date);
     $end_calendar = new MiniCalendar('end_date');
     $end_calendar->set_date($end_date);